Your SlideShare is downloading. ×
0
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Mini curso de django
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Mini curso de django

3,033

Published on

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

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,033
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
199
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. DJANGO Muito prazer em conhecer-te! Prof. Msc. Rosenclever Lopes Gazoni [email_address]
  • 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. 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. 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. Instalação
  • 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. Instalação
  • 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. Estrutura de uma aplicação Django M odel V iew T emplate
  • 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. Executando o Servidor <ul><li>python manage.py runserver </li></ul>
  • 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. 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. 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. 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. 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. 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. 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. Fluxo Básico Browser urls.py views.py Templates settings.py
  • 20. O Poder do ORM
  • 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. 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. 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. Atualizando as configurações
  • 25. Um shell muito poderoso
  • 26. Shell Python <ul><li>Digite o comado “ python manage.py shell ” no prompt para acessar o shell: </li></ul>
  • 27. Shell Python
  • 28. Shell Python
  • 29. Shell Python <ul><li>Criando um artigo e navegando entre os objetos: </li></ul>
  • 30. Interface de Administração
  • 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. 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. forms, views e templates
  • 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. 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. 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. 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. 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. Criando Artigos no Site <ul><li>O que temos até agora: </li></ul>Mas ainda não funciona!!!
  • 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. 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. 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. 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. Fluxo Atual
  • 45. Obrigado!
  • 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>

×