SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Desenvolvendo uma aplicação web em minutos




                                  Rodrigo Nossal
Um pouco sobre Django:




       The web framework for perfectionists with deadlines

       Python

       Mapeado objeto­relacional (No SQL!!)

       MVT (MVC), DRY

       URLs Elegantes

       Interface de administração automática

       Internacionalização

       Sistema de Cache

                                http://www.djangoproject.com
Quem usa o Django?




     Google App Engine
Outros frameworks:



       Python:
            TurboGears (http://www.turbogears.com)
            Pylons (http://pylonshq.com)


       PHP:
              Cake (http://cakephp.org)
              Symphony (http://www.symfony­project.org)


       Ruby:
            Rails (http://rubyonrails.org)
            Merb (http://merbivore.com)
A aplicação
A aplicação - Escopo:




         Uma aplicação de microblog (Twitter like)



              Registro (simples)
              Login
              Fazer posts
              Responder aos posts
              Adicionar (seguir) amigos
Botando a mão na massa
Botando a mão na massa - Ambiente:




   Criando um projeto: 

       $ django-admin startproject microblog


   Criando uma aplicação:

       $ cd microblog
       $ ./manage.py startapp app
Botando a mão na massa - Ambiente:




             Microblog
                 Blog
                      __init__.py
                      models.py
                      views.py

                 __init__.py
                 manage.py
                 settings.py
                 urls.py
Botando a mão na massa - Ambiente:


       Base de dados: settings.py
         DATABASE_ENGINE = 'mysql'
         DATABASE_NAME = 'microblog'
         DATABASE_USER = 'django'
         DATABASE_PASSWORD = '123456'


       Templates:
         TEMPLATES_DIRS = (
            os.path.join(os.path.dirname(__file__),
               '/app/templates')


       Habilitar a aplicação:
         INSTALLED_APPS = (
             …
            'microblog.app',
Models




    SQL pra que mesmo?
Models – Criando nossos modelos:



    microblog/app/models.py




    Habilitando o profile: settings.py
      AUTH_PROFILE_MODULE = 'app.UserProfile'
Models – Brincando com a API:


    Sincronizando banco de dados:
       $ ./manage.py syncdb


    Usando o shell:
       $ ./manage.py shell
       >> from django.contrib.auth.models import User
       >> from microblog.app.models import *
       >> u = User(username = 'pedro',
                       first_name = 'Pedro',
                       last_name = 'da Silva')
       >> u.save()
Models – Brincando com a API:


  Usando o shell (continuação):
     >> u
     >> up = UserProfile(user=u)
     >> up.save()
     >> User.objects.all()
     >> User.objects.get(username = 'pedro')
     >> p = User.objects.get(username = 'pedro').
                                        get_ profile()
     >> p.friends.add(User.objects.get(
                               username = 'paulo'))
     >> p.friends.all()
Models – Interface de administração:




         Habilitando a aplicação de administração
           INSTALLED_APPS = (
           …
           'django.contrib.admin',


        app/admin.py
Urls
URLs:

    Urls elegantes, nada de urls como essa:
     http://www.clicrbs.com.br/blog/jsp/default.jsp?uf=1&
  pg=1&coldir=1&section=Blogs&topo=3994.dwt&uf=1&local=
  1&template=3948.dwt&source=DYNAMIC,blog.BlogDataServer,
  getBlog&blog=222&tipo=1&post=199292


    Nosso esquema de urls:
      /<usuario>/<ação>/      Ex.: /rodrigo/friends/
    Nossas ações:
     friends
     followers
     add
     remove
     status /<número>/
URLs:




          Expressões regulares
          Habilitar a url para a interface de administração
             admin.autodiscover()
             (r'^admin/(.*)', admin.site.root)
Vamos testar!




    $ ./manage.py runserver
URLs - Patterns:




   index:
       urlpatterns += patterns('microblog.app.wiews',
           (r'^$', 'index'),
       )
Views
Wiews:



    Generic wiews:
    Autenticação:
      (r'^login$',     'django.contrib.auth.views.login',
            {'template_name': 'login.html'}),
      (r'^logout$', 'django.contrib.auth.views.logout',
            {'next_page': '/'})


    view index:
       from django.http import HttpResponse

         def index(request):
             return HttpResponse(“Hello world!!”)
Templates
Templates:


               Conteúdo separado do design
               Herança (block, extends)
               Blocos (block)
               Snippets (include)
               Filtros
               Tags (for, if, ifequal, ifnotequal)


             {{ varivavel }}

             {% tags %}
             {{ variavel|filtro }}
Templates - herança:




      base.html
Templates:



               base.html
                login.html
                register.html
                profile.html
                index.html
                friends.html
               followers.html
                posts_list_snippet.html
Views & Templates
Views & Templates:



                  index
                  user_friends
                  user_followers
                  user
                  register
                  add
                  remove
                  status
Views & Templates:



      Implementando as views
      Views
         shortcuts: get_object_or_404, render_to_response


      Contexts settings.py
        TEMPLATE_CONTEXT_PROCESSORS = (
             …
             'django.core.context_processors.auth',
Forms, ModelForms
Forms, ModelForms:




        UserCreationForm:
           form = UserCreationForm(request.POST)


        Validação:
          if form.is_valid():


        ModelForm:
          class PostForm(Model.Form)
Onde aprender mais?




     http://docs.djangoproject.com
     http://groups.google.com.br/group/django­brasil
     http://www.aprendendodjango.com
     http://www.djangobrasil.org

Contenu connexe

Tendances

Construindo Sistemas Com Django
Construindo Sistemas Com DjangoConstruindo Sistemas Com Django
Construindo Sistemas Com DjangoMarinho Brandão
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e DjangoOsvaldo Santana Neto
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Felipe Queiroz
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com pythonBruno Rocha
 
Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.Arthur Furlan
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkRafael Dohms
 
PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009Rafael Dohms
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyRelsi Maron
 
Django Tem Ritmo
Django Tem RitmoDjango Tem Ritmo
Django Tem Ritmoitalomaia
 
Boas práticas de django
Boas práticas de djangoBoas práticas de django
Boas práticas de djangoFilipe Ximenes
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web ServicesDorneles Treméa
 

Tendances (20)

Python na Web
Python na WebPython na Web
Python na Web
 
Construindo Sistemas Com Django
Construindo Sistemas Com DjangoConstruindo Sistemas Com Django
Construindo Sistemas Com Django
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e Django
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
 
Django - Muito além do básico
Django - Muito além do básicoDjango - Muito além do básico
Django - Muito além do básico
 
Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao Framework
 
PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Django Tem Ritmo
Django Tem RitmoDjango Tem Ritmo
Django Tem Ritmo
 
Java primeiros-passos
Java primeiros-passosJava primeiros-passos
Java primeiros-passos
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Boas práticas de django
Boas práticas de djangoBoas práticas de django
Boas práticas de django
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web Services
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 

En vedette

Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 
Persistência de Objetos em Java
Persistência de Objetos em JavaPersistência de Objetos em Java
Persistência de Objetos em Javaarmeniocardoso
 
Apresentação de Django Extension
Apresentação de Django ExtensionApresentação de Django Extension
Apresentação de Django ExtensionMoacir Filho
 
Django, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webDjango, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webMayron Cachina
 
Mini curso introdutório ao Django
Mini curso introdutório ao DjangoMini curso introdutório ao Django
Mini curso introdutório ao DjangoVinicius Mendes
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonGrupo de Testes Carioca
 
Técnicas de frontend para aplicações django - PythonBrasil[9]
Técnicas de frontend para aplicações django  - PythonBrasil[9]Técnicas de frontend para aplicações django  - PythonBrasil[9]
Técnicas de frontend para aplicações django - PythonBrasil[9]Rael Max
 

En vedette (16)

Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Introdução ao Django
Introdução ao DjangoIntrodução ao Django
Introdução ao Django
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Persistência de Objetos em Java
Persistência de Objetos em JavaPersistência de Objetos em Java
Persistência de Objetos em Java
 
Apresentação de Django Extension
Apresentação de Django ExtensionApresentação de Django Extension
Apresentação de Django Extension
 
Django, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webDjango, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento web
 
Mini curso introdutório ao Django
Mini curso introdutório ao DjangoMini curso introdutório ao Django
Mini curso introdutório ao Django
 
Django
DjangoDjango
Django
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Trabalhando com as views do Web2Py
Trabalhando com as views do Web2PyTrabalhando com as views do Web2Py
Trabalhando com as views do Web2Py
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
Django
DjangoDjango
Django
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em python
 
Técnicas de frontend para aplicações django - PythonBrasil[9]
Técnicas de frontend para aplicações django  - PythonBrasil[9]Técnicas de frontend para aplicações django  - PythonBrasil[9]
Técnicas de frontend para aplicações django - PythonBrasil[9]
 

Similaire à Desenvolvendo aplicações web com Django em minutos

Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Tchelinux
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Python e Django
Python e DjangoPython e Django
Python e Djangopugpe
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkMarcelo Rodrigo
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheirasLambda 3
 
Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018Rafael Sales Pavarina
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Carlos Duarte do Nascimento
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Google Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteGoogle Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteJohann Vivot
 
Django - Criando Aplicacoes Plugaveis
Django - Criando Aplicacoes PlugaveisDjango - Criando Aplicacoes Plugaveis
Django - Criando Aplicacoes PlugaveisMarinho Brandão
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOLgrupoweblovers
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.jsGiovanni Bassi
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app enginepugpe
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoFreedom DayMS
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 

Similaire à Desenvolvendo aplicações web com Django em minutos (20)

Workshop Django
Workshop DjangoWorkshop Django
Workshop Django
 
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
 
Django Módulo Básico Parte II
Django Módulo Básico Parte IIDjango Módulo Básico Parte II
Django Módulo Básico Parte II
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
Python 06
Python 06Python 06
Python 06
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana framework
 
Oficina de Django
Oficina de DjangoOficina de Django
Oficina de Django
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheiras
 
Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Google Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteGoogle Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonte
 
Django - Criando Aplicacoes Plugaveis
Django - Criando Aplicacoes PlugaveisDjango - Criando Aplicacoes Plugaveis
Django - Criando Aplicacoes Plugaveis
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.js
 
Implementação de
Implementação de Implementação de
Implementação de
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engine
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com Django
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 

Desenvolvendo aplicações web com Django em minutos

  • 1. Desenvolvendo uma aplicação web em minutos Rodrigo Nossal
  • 2. Um pouco sobre Django:  The web framework for perfectionists with deadlines  Python  Mapeado objeto­relacional (No SQL!!)  MVT (MVC), DRY  URLs Elegantes  Interface de administração automática  Internacionalização  Sistema de Cache http://www.djangoproject.com
  • 3. Quem usa o Django? Google App Engine
  • 4. Outros frameworks: Python: TurboGears (http://www.turbogears.com) Pylons (http://pylonshq.com) PHP: Cake (http://cakephp.org) Symphony (http://www.symfony­project.org) Ruby: Rails (http://rubyonrails.org) Merb (http://merbivore.com)
  • 6. A aplicação - Escopo: Uma aplicação de microblog (Twitter like)   Registro (simples)   Login   Fazer posts   Responder aos posts   Adicionar (seguir) amigos
  • 7. Botando a mão na massa
  • 8. Botando a mão na massa - Ambiente: Criando um projeto:  $ django-admin startproject microblog Criando uma aplicação: $ cd microblog $ ./manage.py startapp app
  • 9. Botando a mão na massa - Ambiente: Microblog Blog __init__.py models.py views.py __init__.py manage.py settings.py urls.py
  • 10. Botando a mão na massa - Ambiente:  Base de dados: settings.py DATABASE_ENGINE = 'mysql' DATABASE_NAME = 'microblog' DATABASE_USER = 'django' DATABASE_PASSWORD = '123456'  Templates: TEMPLATES_DIRS = ( os.path.join(os.path.dirname(__file__), '/app/templates')  Habilitar a aplicação: INSTALLED_APPS = ( … 'microblog.app',
  • 11. Models SQL pra que mesmo?
  • 12. Models – Criando nossos modelos: microblog/app/models.py Habilitando o profile: settings.py AUTH_PROFILE_MODULE = 'app.UserProfile'
  • 13. Models – Brincando com a API:   Sincronizando banco de dados: $ ./manage.py syncdb   Usando o shell: $ ./manage.py shell >> from django.contrib.auth.models import User >> from microblog.app.models import * >> u = User(username = 'pedro', first_name = 'Pedro', last_name = 'da Silva') >> u.save()
  • 14. Models – Brincando com a API:   Usando o shell (continuação): >> u >> up = UserProfile(user=u) >> up.save() >> User.objects.all() >> User.objects.get(username = 'pedro') >> p = User.objects.get(username = 'pedro'). get_ profile() >> p.friends.add(User.objects.get( username = 'paulo')) >> p.friends.all()
  • 15. Models – Interface de administração:  Habilitando a aplicação de administração INSTALLED_APPS = ( … 'django.contrib.admin', app/admin.py
  • 16. Urls
  • 17. URLs:   Urls elegantes, nada de urls como essa: http://www.clicrbs.com.br/blog/jsp/default.jsp?uf=1& pg=1&coldir=1&section=Blogs&topo=3994.dwt&uf=1&local= 1&template=3948.dwt&source=DYNAMIC,blog.BlogDataServer, getBlog&blog=222&tipo=1&post=199292   Nosso esquema de urls: /<usuario>/<ação>/ Ex.: /rodrigo/friends/   Nossas ações: friends followers add remove status /<número>/
  • 18. URLs:   Expressões regulares   Habilitar a url para a interface de administração admin.autodiscover() (r'^admin/(.*)', admin.site.root)
  • 19. Vamos testar! $ ./manage.py runserver
  • 20. URLs - Patterns:  index: urlpatterns += patterns('microblog.app.wiews', (r'^$', 'index'), )
  • 21. Views
  • 22. Wiews:   Generic wiews:   Autenticação: (r'^login$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}), (r'^logout$', 'django.contrib.auth.views.logout', {'next_page': '/'})   view index: from django.http import HttpResponse def index(request): return HttpResponse(“Hello world!!”)
  • 24. Templates:   Conteúdo separado do design   Herança (block, extends)   Blocos (block)   Snippets (include)   Filtros   Tags (for, if, ifequal, ifnotequal) {{ varivavel }} {% tags %} {{ variavel|filtro }}
  • 26. Templates:   base.html   login.html   register.html   profile.html   index.html   friends.html  followers.html   posts_list_snippet.html
  • 28. Views & Templates:  index  user_friends  user_followers  user  register  add  remove  status
  • 29. Views & Templates:   Implementando as views   Views shortcuts: get_object_or_404, render_to_response   Contexts settings.py TEMPLATE_CONTEXT_PROCESSORS = ( … 'django.core.context_processors.auth',
  • 31. Forms, ModelForms:   UserCreationForm: form = UserCreationForm(request.POST)   Validação: if form.is_valid():   ModelForm: class PostForm(Model.Form)
  • 32. Onde aprender mais? http://docs.djangoproject.com http://groups.google.com.br/group/django­brasil http://www.aprendendodjango.com http://www.djangobrasil.org