Mini curso de django

  • 2,934 views
Uploaded 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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,934
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

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