Desenvolvendo uma aplicação web em minutos




                                  Rodrigo Nossal
Um pouco sobre Django:




       The web framework for perfectionists with deadlines

       Python

       Mapeado ob...
Quem usa o Django?




     Google App Engine
Outros frameworks:



       Python:
            TurboGears (http://www.turbogears.com)
            Pylons (http://pylonsh...
A aplicação
A aplicação - Escopo:




         Uma aplicação de microblog (Twitter like)



              Registro (simples)
        ...
Botando a mão na massa
Botando a mão na massa - Ambiente:




   Criando um projeto: 

       $ django-admin startproject microblog


   Criand...
Botando a mão na massa - Ambiente:




             Microblog
                 Blog
                      __init__.py
    ...
Botando a mão na massa - Ambiente:


       Base de dados: settings.py
         DATABASE_ENGINE = 'mysql'
         DATABA...
Models




    SQL pra que mesmo?
Models – Criando nossos modelos:



    microblog/app/models.py




    Habilitando o profile: settings.py
      AUTH_PROF...
Models – Brincando com a API:


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


    Usando o shell:
    ...
Models – Brincando com a API:


  Usando o shell (continuação):
     >> u
     >> up = UserProfile(user=u)
     >> up.sav...
Models – Interface de administração:




         Habilitando a aplicação de administração
           INSTALLED_APPS = (
...
Urls
URLs:

    Urls elegantes, nada de urls como essa:
     http://www.clicrbs.com.br/blog/jsp/default.jsp?uf=1&
  pg=1&coldi...
URLs:




          Expressões regulares
          Habilitar a url para a interface de administração
             admin....
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',
            {'t...
Templates
Templates:


               Conteúdo separado do design
               Herança (block, extends)
               Blocos (...
Templates - herança:




      base.html
Templates:



               base.html
                login.html
                register.html
                profil...
Views & Templates
Views & Templates:



                  index
                  user_friends
                  user_followers
         ...
Views & Templates:



      Implementando as views
      Views
         shortcuts: get_object_or_404, render_to_response...
Forms, ModelForms
Forms, ModelForms:




        UserCreationForm:
           form = UserCreationForm(request.POST)


        Validação:
 ...
Onde aprender mais?




     http://docs.djangoproject.com
     http://groups.google.com.br/group/django­brasil
     http:...
Upcoming SlideShare
Loading in...5
×

Django: Desenvolvendo uma aplicação web em minutos

6,169

Published on

Tutorial de uma aplicação "Twitter like" usando Djando (1.2)

3 Comments
8 Likes
Statistics
Notes
No Downloads
Views
Total Views
6,169
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
220
Comments
3
Likes
8
Embeds 0
No embeds

No notes for slide

Django: Desenvolvendo uma aplicação web em minutos

  1. 1. Desenvolvendo uma aplicação web em minutos Rodrigo Nossal
  2. 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. 3. Quem usa o Django? Google App Engine
  4. 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)
  5. 5. A aplicação
  6. 6. A aplicação - Escopo: Uma aplicação de microblog (Twitter like)   Registro (simples)   Login   Fazer posts   Responder aos posts   Adicionar (seguir) amigos
  7. 7. Botando a mão na massa
  8. 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. 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. 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. 11. Models SQL pra que mesmo?
  12. 12. Models – Criando nossos modelos: microblog/app/models.py Habilitando o profile: settings.py AUTH_PROFILE_MODULE = 'app.UserProfile'
  13. 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. 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. 15. Models – Interface de administração:  Habilitando a aplicação de administração INSTALLED_APPS = ( … 'django.contrib.admin', app/admin.py
  16. 16. Urls
  17. 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. 18. URLs:   Expressões regulares   Habilitar a url para a interface de administração admin.autodiscover() (r'^admin/(.*)', admin.site.root)
  19. 19. Vamos testar! $ ./manage.py runserver
  20. 20. URLs - Patterns:  index: urlpatterns += patterns('microblog.app.wiews', (r'^$', 'index'), )
  21. 21. Views
  22. 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!!”)
  23. 23. Templates
  24. 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 }}
  25. 25. Templates - herança: base.html
  26. 26. Templates:   base.html   login.html   register.html   profile.html   index.html   friends.html  followers.html   posts_list_snippet.html
  27. 27. Views & Templates
  28. 28. Views & Templates:  index  user_friends  user_followers  user  register  add  remove  status
  29. 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',
  30. 30. Forms, ModelForms
  31. 31. Forms, ModelForms:   UserCreationForm: form = UserCreationForm(request.POST)   Validação: if form.is_valid():   ModelForm: class PostForm(Model.Form)
  32. 32. Onde aprender mais? http://docs.djangoproject.com http://groups.google.com.br/group/django­brasil http://www.aprendendodjango.com http://www.djangobrasil.org
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×