0
DJANGO Muito prazer em conhecer-te! Prof. Msc. Rosenclever Lopes Gazoni [email_address]
Sumário <ul><li>O que é o Django? </li></ul><ul><li>Instalação </li></ul><ul><li>Estrutura de uma aplicação Django </li></...
O que é o Django? <ul><li>Framework Web de alto nível escrito em Python </li></ul><ul><li>Usa linguagem interpretada </li>...
Instalação <ul><li>Windows </li></ul><ul><ul><li>Faça o download dos arquivos necessários </li></ul></ul><ul><ul><li>Pytho...
Instalação
Instalação <ul><li>Descompactar o Django </li></ul><ul><li>cd c:Django1.3 </li></ul><ul><li>python setup.py install </li><...
Instalação
Instalação <ul><li>Linux e iOS </li></ul><ul><ul><li>Python – Já é nativo </li></ul></ul><ul><ul><li>Faça o download do Dj...
Estrutura de uma aplicação Django M odel V iew T emplate
Criando um Projeto <ul><li>Python c:Python25Scriptsdjango-admin.py startproject jornal </li></ul><ul><li>jornal/ </li></ul...
Executando o Servidor <ul><li>python manage.py runserver </li></ul>
Criando uma app <ul><li>python manage.py startapp redacao </li></ul><ul><li>redacao/ </li></ul><ul><ul><li>__init__ </li><...
Manipulando Templates <ul><li>Crie a pasta templates dentro da pasta jornal </li></ul><ul><li>Crie o template (base.html) ...
Manipulando Templates <ul><li>Crie o template (index.html) para a página inicial: </li></ul><ul><li>{% extends &quot;base....
Manipulando Templates <ul><li>Organize suas configurações (settings.py): </li></ul><ul><li>import os </li></ul><ul><li>PRO...
Criando uma View <ul><li>Na pasta redacao modifique o arquivo views.py: </li></ul><ul><li>from django.shortcuts import ren...
Ativando uma app <ul><li>Edite o arquivo settings.py: </li></ul><ul><li>INSTALLED_APPS = ( </li></ul><ul><li>'django.contr...
URLs Ricas <ul><li>Modifique o arquivo urls.py acrescentando a linha: </li></ul><ul><li>url(r'^$', 'redacao.views.homepage...
Fluxo Básico Browser urls.py views.py Templates settings.py
O Poder do ORM
Configurando o Banco de Dados <ul><li>Modifique o arquivo settings.py: </li></ul><ul><li>import os </li></ul><ul><li>PROJE...
Criando Models <ul><li>Edite o arquivo models.py da pasta redacao: </li></ul><ul><li>class Reporter(models.Model): </li></...
Atualizando as configurações <ul><li>python manage.py syncdb </li></ul><ul><li>Username=admin </li></ul><ul><li>Password=a...
Atualizando as configurações
Um shell muito poderoso
Shell Python <ul><li>Digite o comado “ python manage.py shell ”  no prompt para acessar o shell: </li></ul>
Shell Python
Shell Python
Shell Python <ul><li>Criando um artigo e navegando entre os objetos: </li></ul>
Interface de Administração
Interface de Administração <ul><li>Em settings.py na seção INSTALLED_APPS, retire o comentário da linha: </li></ul><ul><li...
Interface de Adminstração <ul><li>Execute o servidor </li></ul><ul><li>Acesse o endereço </li></ul><ul><li>http://127.0.0....
forms, views e templates
Criando Artigos no Site <ul><li>Na pasta redacao crie o arquivo forms.py: </li></ul><ul><li>from django import forms </li>...
Criando artigos no site <ul><li>Modifique o arquivo views.py da pasta redação: </li></ul><ul><li>def edicao(request): </li...
Criando artigos no site <ul><li>Modifique o arquivo views.py da pasta redação: </li></ul><ul><li>from django.shortcuts imp...
Criando artigos no site <ul><li>Crie a pasta templates em redacao e nela o arquivo novoArtigo.html: </li></ul><ul><li>{% e...
Criando Artigos no Site <ul><li>Deixe as “coisas” fáceis de encontrar: </li></ul><ul><ul><li>Modifique o arquivo urls.py d...
Criando Artigos no Site <ul><li>O que temos até agora: </li></ul>Mas ainda não funciona!!!
Criando Artigos no Site <ul><li>Modifique o arquivo views.py da pasta redacao: </li></ul><ul><li>from redacao.models impor...
Criando Artigos no Site <ul><li>Modifique o arquivo views.py da pasta redacao: </li></ul><ul><li>def gravar(request): </li...
Criando Artigos no Site <ul><li>Modifique o arquivo views.py da pasta redacao: </li></ul><ul><li>def success(request, id):...
Criando Artigos no Site <ul><li>Na pasta templates de redacao, crie o arquivo success.html </li></ul><ul><li>{% extends 'b...
Fluxo Atual
Obrigado!
Referências <ul><li>Django Project -  http:// djangoproject.com </li></ul><ul><li>Developers List -  http://groups.google....
Upcoming SlideShare
Loading in...5
×

Mini curso de django

3,036

Published on

Slides do mini-curso de django realizado no XV Seminário de Tecnologia da Informação do Unifoa. Professor Rosenclever Lopes Gazoni

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,036
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
199
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "Mini curso de django"

  1. 1. DJANGO Muito prazer em conhecer-te! Prof. Msc. Rosenclever Lopes Gazoni [email_address]
  2. 2. Sumário <ul><li>O que é o Django? </li></ul><ul><li>Instalação </li></ul><ul><li>Estrutura de uma aplicação Django </li></ul><ul><li>Criação de um projeto </li></ul><ul><li>Conhecendo os arquivos Básicos de Configuração </li></ul><ul><li>Executando o servidor </li></ul><ul><li>Criando uma view </li></ul><ul><li>Usando Templates </li></ul><ul><li>Criando uma app </li></ul><ul><li>Configurando o banco de dados </li></ul><ul><li>Criando models </li></ul><ul><li>Ativando uma app </li></ul><ul><li>Shell python </li></ul><ul><li>Interface de Administração do Django </li></ul><ul><li>Criando artigos no site </li></ul>
  3. 3. O que é o Django? <ul><li>Framework Web de alto nível escrito em Python </li></ul><ul><li>Usa linguagem interpretada </li></ul><ul><li>A identação delimita os blocos </li></ul><ul><li>Possui mapeamento objeto relacional </li></ul><ul><li>Interface administrativa automática </li></ul><ul><li>Projeto elegante de URL </li></ul><ul><li>Sistema de templates </li></ul><ul><li>Fácil Internacionalização </li></ul>
  4. 4. Instalação <ul><li>Windows </li></ul><ul><ul><li>Faça o download dos arquivos necessários </li></ul></ul><ul><ul><li>Python – http://python.org/ftp/python/2.7.1/python-2.7.1. msi </li></ul></ul><ul><ul><li>Django – http ://www.djangoproject.com/download/1.3/tarball / </li></ul></ul><ul><ul><li>Após instalar o python modifique as váriáveis ambiente: </li></ul></ul>
  5. 5. Instalação
  6. 6. Instalação <ul><li>Descompactar o Django </li></ul><ul><li>cd c:Django1.3 </li></ul><ul><li>python setup.py install </li></ul><ul><li>Teste: </li></ul><ul><ul><li>No prompt de comando execute o interpretador python: </li></ul></ul><ul><ul><ul><li>python </li></ul></ul></ul><ul><ul><li>No interpretador python digite o comando para verificar a instalação do Django: </li></ul></ul><ul><ul><ul><li>import django </li></ul></ul></ul><ul><ul><li>Se não houver erro a instalação foi um sucesso! </li></ul></ul>
  7. 7. Instalação
  8. 8. Instalação <ul><li>Linux e iOS </li></ul><ul><ul><li>Python – Já é nativo </li></ul></ul><ul><ul><li>Faça o download do Django </li></ul></ul><ul><ul><ul><li>Django - - http://www.djangoproject.com/download/1.3/tarball/ </li></ul></ul></ul><ul><ul><li>Execute os comandos </li></ul></ul><ul><ul><ul><li>tar –xvzf Django-1.3.tar.gz </li></ul></ul></ul><ul><ul><ul><li>cd Django1.3 </li></ul></ul></ul><ul><ul><ul><li>sudo python setup.py install </li></ul></ul></ul><ul><ul><li>Teste </li></ul></ul><ul><ul><li>No prompt de shell execute o interpretador python: </li></ul></ul><ul><ul><ul><li>python </li></ul></ul></ul><ul><ul><li>No interpretador python digite o comando para verificar a instalação do Django: </li></ul></ul><ul><ul><ul><li>import django </li></ul></ul></ul><ul><ul><li>Se não houver erro a instalação foi um sucesso! </li></ul></ul>
  9. 9. Estrutura de uma aplicação Django M odel V iew T emplate
  10. 10. Criando um Projeto <ul><li>Python c:Python25Scriptsdjango-admin.py startproject jornal </li></ul><ul><li>jornal/ </li></ul><ul><ul><li>__init__ </li></ul></ul><ul><ul><li>manage.py </li></ul></ul><ul><ul><li>settings.py </li></ul></ul><ul><ul><li>urls.py </li></ul></ul>
  11. 11. Executando o Servidor <ul><li>python manage.py runserver </li></ul>
  12. 12. Criando uma app <ul><li>python manage.py startapp redacao </li></ul><ul><li>redacao/ </li></ul><ul><ul><li>__init__ </li></ul></ul><ul><ul><li>models.py </li></ul></ul><ul><ul><li>tests.py </li></ul></ul><ul><ul><li>views.py </li></ul></ul>
  13. 13. Manipulando Templates <ul><li>Crie a pasta templates dentro da pasta jornal </li></ul><ul><li>Crie o template (base.html) básico para padronizar as páginas do site: </li></ul><ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><title>{% block title %}{% endblock %}</title> </li></ul><ul><li></head> </li></ul><ul><li><body> </li></ul><ul><li><marquee>Aprendendo Django!</marquee> </li></ul><ul><li>{% block content %}{% endblock %} </li></ul><ul><li></body> </li></ul><ul><li></html> </li></ul>
  14. 14. Manipulando Templates <ul><li>Crie o template (index.html) para a página inicial: </li></ul><ul><li>{% extends &quot;base.html&quot; %} </li></ul><ul><li>{% block title %} </li></ul><ul><li>Django, muito prazer em conhecer-te! </li></ul><ul><li>{% endblock %} </li></ul><ul><li>{% block content %} </li></ul><ul><li><h1 align=&quot;center&quot;>Bem Vindo!</h1> </li></ul><ul><li>{% endblock %} </li></ul>
  15. 15. Manipulando Templates <ul><li>Organize suas configurações (settings.py): </li></ul><ul><li>import os </li></ul><ul><li>PROJECT_DIR = os.path.dirname(__file__) </li></ul><ul><li>TEMPLATE_DIRS = ( </li></ul><ul><li>os.path.join(PROJECT_DIR, 'templates'), </li></ul><ul><li>) </li></ul>
  16. 16. Criando uma View <ul><li>Na pasta redacao modifique o arquivo views.py: </li></ul><ul><li>from django.shortcuts import render_to_response </li></ul><ul><li>def homepage(request): </li></ul><ul><li>return render_to_response('index.html') </li></ul>
  17. 17. Ativando uma app <ul><li>Edite o arquivo settings.py: </li></ul><ul><li>INSTALLED_APPS = ( </li></ul><ul><li>'django.contrib.auth', </li></ul><ul><li>'django.contrib.contenttypes', </li></ul><ul><li>'django.contrib.sessions', </li></ul><ul><li>'django.contrib.sites', </li></ul><ul><li>'django.contrib.messages', </li></ul><ul><li># Uncomment the next line to enable the admin: </li></ul><ul><li># 'django.contrib.admin', </li></ul><ul><li># Uncomment the next line to enable admin documentation: </li></ul><ul><li># 'django.contrib.admindocs', </li></ul><ul><li>'redacao', </li></ul><ul><li>) </li></ul>
  18. 18. URLs Ricas <ul><li>Modifique o arquivo urls.py acrescentando a linha: </li></ul><ul><li>url(r'^$', 'redacao.views.homepage', name='homepage') , </li></ul><ul><li>Execute novamente o servidor e verifique o browser: </li></ul>
  19. 19. Fluxo Básico Browser urls.py views.py Templates settings.py
  20. 20. O Poder do ORM
  21. 21. Configurando o Banco de Dados <ul><li>Modifique o arquivo settings.py: </li></ul><ul><li>import os </li></ul><ul><li>PROJECT_DIR = os.path.dirname(__file__) </li></ul><ul><li>DATABASES = { </li></ul><ul><li>'default': { </li></ul><ul><li>'ENGINE': 'django.db.backends.sqlite3’ </li></ul><ul><li>'NAME': os.path.join(PROJECT_DIR, 'dbJornal.db'), </li></ul><ul><li>...} </li></ul><ul><li>} </li></ul>
  22. 22. Criando Models <ul><li>Edite o arquivo models.py da pasta redacao: </li></ul><ul><li>class Reporter(models.Model): </li></ul><ul><li>full_name = models.CharField(max_length=70) </li></ul><ul><li>def __unicode__(self): </li></ul><ul><li>return self.full_name </li></ul><ul><li>class Article(models.Model): </li></ul><ul><li>pub_date = models.DateTimeField() </li></ul><ul><li>headline = models.CharField(max_length=200) </li></ul><ul><li>content = models.TextField() </li></ul><ul><li>reporter = models.ForeignKey(Reporter) </li></ul><ul><li>def __unicode__(self): </li></ul><ul><li>return self.headline </li></ul>
  23. 23. Atualizando as configurações <ul><li>python manage.py syncdb </li></ul><ul><li>Username=admin </li></ul><ul><li>Password=admin </li></ul>
  24. 24. Atualizando as configurações
  25. 25. Um shell muito poderoso
  26. 26. Shell Python <ul><li>Digite o comado “ python manage.py shell ” no prompt para acessar o shell: </li></ul>
  27. 27. Shell Python
  28. 28. Shell Python
  29. 29. Shell Python <ul><li>Criando um artigo e navegando entre os objetos: </li></ul>
  30. 30. Interface de Administração
  31. 31. Interface de Administração <ul><li>Em settings.py na seção INSTALLED_APPS, retire o comentário da linha: </li></ul><ul><li>'django.contrib.admin', </li></ul><ul><li>Em urls.py retire o comentário das linhas: </li></ul><ul><li>from django.contrib import admin </li></ul><ul><li>admin.autodiscover() </li></ul><ul><li>(r'^admin/', include(admin.site.urls)), </li></ul><ul><li>Crie um arquivo admin.py em redacao com as linhas: </li></ul><ul><li>import models </li></ul><ul><li>from django.contrib import admin </li></ul><ul><li>admin.site.register(models.Article) </li></ul>
  32. 32. Interface de Adminstração <ul><li>Execute o servidor </li></ul><ul><li>Acesse o endereço </li></ul><ul><li>http://127.0.0.1:8000/admin </li></ul>
  33. 33. forms, views e templates
  34. 34. Criando Artigos no Site <ul><li>Na pasta redacao crie o arquivo forms.py: </li></ul><ul><li>from django import forms </li></ul><ul><li>from redacao.models import Reporter, Article </li></ul><ul><li>class ArtigoForm(forms.ModelForm): </li></ul><ul><li>class Meta: </li></ul><ul><li>model = Article </li></ul>
  35. 35. Criando artigos no site <ul><li>Modifique o arquivo views.py da pasta redação: </li></ul><ul><li>def edicao(request): </li></ul><ul><li>if request.method == 'POST': </li></ul><ul><li>return gravar(request) </li></ul><ul><li>else: </li></ul><ul><li>return novo(request) </li></ul>
  36. 36. Criando artigos no site <ul><li>Modifique o arquivo views.py da pasta redação: </li></ul><ul><li>from django.shortcuts import render_to_response </li></ul><ul><li>from django.template import RequestContext </li></ul><ul><li>from redacao.forms import ArtigoForm </li></ul><ul><li>... </li></ul><ul><li>def novo(request): </li></ul><ul><li>form = ArtigoForm() </li></ul><ul><li>context = RequestContext(request, {'form': form}) </li></ul><ul><li>return render_to_response('novoArtigo.html', context) </li></ul>
  37. 37. Criando artigos no site <ul><li>Crie a pasta templates em redacao e nela o arquivo novoArtigo.html: </li></ul><ul><li>{% extends 'base.html' %} </li></ul><ul><li>{% block content %} </li></ul><ul><li><h1>Novo Artigo</h1> </li></ul><ul><li>{{ form.non_field_errors }} </li></ul><ul><li><form action=&quot;.&quot; method=&quot;POST&quot;> </li></ul><ul><li>{% csrf_token %} </li></ul><ul><li>{{ form.as_p }} </li></ul><ul><li><input type=&quot;submit&quot; value=&quot;Enviar!&quot; class=&quot;button&quot;> </li></ul><ul><li></form> </li></ul><ul><li><p><strong><a href=&quot;{% url homepage %}&quot;>Principal</a></strong> </li></ul><ul><li>{% endblock content %} </li></ul>
  38. 38. Criando Artigos no Site <ul><li>Deixe as “coisas” fáceis de encontrar: </li></ul><ul><ul><li>Modifique o arquivo urls.py da pasta jornal acrescentando a linha: </li></ul></ul><ul><li>(r'^edicao/', include('redacao.urls', namespace='redacao')), </li></ul><ul><ul><li>Crie o arquivo urls.py na pasta redacao acrescente as linhas: </li></ul></ul><ul><li>from django.conf.urls.defaults import * </li></ul><ul><li>urlpatterns = patterns('redacao.views', </li></ul><ul><li>url(r'^$', 'edicao', name='edicao'), </li></ul><ul><li>url(r'^(d+)/sucesso/$', 'success', name='success'), </li></ul><ul><li>) </li></ul>
  39. 39. Criando Artigos no Site <ul><li>O que temos até agora: </li></ul>Mas ainda não funciona!!!
  40. 40. Criando Artigos no Site <ul><li>Modifique o arquivo views.py da pasta redacao: </li></ul><ul><li>from redacao.models import Reporter, Article </li></ul><ul><li>from django.core.urlresolvers import reverse </li></ul><ul><li>from django.shortcuts import render_to_response, get_object_or_404 </li></ul><ul><li>from django.http import HttpResponseRedirect </li></ul><ul><li>.... </li></ul>
  41. 41. Criando Artigos no Site <ul><li>Modifique o arquivo views.py da pasta redacao: </li></ul><ul><li>def gravar(request): </li></ul><ul><li>form = ArtigoForm(request.POST) </li></ul><ul><li>if not form.is_valid(): </li></ul><ul><li>context = RequestContext(request, {'form': form}) </li></ul><ul><li>return render_to_response('index.html', context) </li></ul><ul><li>artigo = form.save() </li></ul><ul><li>return HttpResponseRedirect(reverse('redacao:success', args=[ artigo.pk ])) </li></ul>
  42. 42. Criando Artigos no Site <ul><li>Modifique o arquivo views.py da pasta redacao: </li></ul><ul><li>def success(request, id): </li></ul><ul><li>artigo = get_object_or_404(Article, pk=id) </li></ul><ul><li>context = RequestContext(request, {'artigo': artigo}) </li></ul><ul><li>return render_to_response('success.html', context) </li></ul>
  43. 43. Criando Artigos no Site <ul><li>Na pasta templates de redacao, crie o arquivo success.html </li></ul><ul><li>{% extends 'base.html' %} </li></ul><ul><li>{% block content %} </li></ul><ul><li><p>Parabéns {{ artigo.reporter }},</p> </li></ul><ul><li><p>seu artigo {{ artigo.headline }} foi publicado em {{ artigo.pub_date|date:&quot;d/m/Y&quot; }}.</p> </li></ul><ul><li><p><strong><a href=&quot;{% url homepage %}&quot;>Principal</a></strong>&nbsp; </li></ul><ul><li><strong><a href=&quot;{% url redacao:edicao %}&quot;>Registre outro Artigo!</a></strong></p> </li></ul><ul><li>{% endblock content %} </li></ul>
  44. 44. Fluxo Atual
  45. 45. Obrigado!
  46. 46. Referências <ul><li>Django Project - http:// djangoproject.com </li></ul><ul><li>Developers List - http://groups.google.com.br/group/django- developers </li></ul><ul><li>Users List - http://groups.google.com.br/group/django- users </li></ul><ul><li>Django Brasil - http:// djangobrasil.org </li></ul><ul><li>Lista de Usuários - http://groups.google.com/group/django-brasil / </li></ul><ul><li>Welcome to the django ( www.henriquebastos.net ) </li></ul><ul><li>Aprendendo django no planeta terra ( www.aprendendodjango.com ) </li></ul>
  1. A particular slide catching your eye?

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

×