Mini curso de django
Upcoming SlideShare
Loading in...5
×
 

Mini curso de django

on

  • 3,219 views

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

Statistics

Views

Total Views
3,219
Slideshare-icon Views on SlideShare
3,219
Embed Views
0

Actions

Likes
4
Downloads
191
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Mini curso de django Mini curso de django Presentation Transcript

    • DJANGO Muito prazer em conhecer-te! Prof. Msc. Rosenclever Lopes Gazoni [email_address]
    • 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
    • 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
    • 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:
    • Instalação
    • 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!
    • Instalação
    • 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!
    • Estrutura de uma aplicação Django M odel V iew T emplate
    • Criando um Projeto
      • Python c:Python25Scriptsdjango-admin.py startproject jornal
      • jornal/
        • __init__
        • manage.py
        • settings.py
        • urls.py
    • Executando o Servidor
      • python manage.py runserver
    • Criando uma app
      • python manage.py startapp redacao
      • redacao/
        • __init__
        • models.py
        • tests.py
        • views.py
    • 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>
    • 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 %}
    • Manipulando Templates
      • Organize suas configurações (settings.py):
      • import os
      • PROJECT_DIR = os.path.dirname(__file__)
      • TEMPLATE_DIRS = (
      • os.path.join(PROJECT_DIR, 'templates'),
      • )
    • 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')
    • 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',
      • )
    • 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:
    • Fluxo Básico Browser urls.py views.py Templates settings.py
    • O Poder do ORM
    • 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'),
      • ...}
      • }
    • 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
    • Atualizando as configurações
      • python manage.py syncdb
      • Username=admin
      • Password=admin
    • Atualizando as configurações
    • Um shell muito poderoso
    • Shell Python
      • Digite o comado “ python manage.py shell ” no prompt para acessar o shell:
    • Shell Python
    • Shell Python
    • Shell Python
      • Criando um artigo e navegando entre os objetos:
    • Interface de Administração
    • 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)
    • Interface de Adminstração
      • Execute o servidor
      • Acesse o endereço
      • http://127.0.0.1:8000/admin
    • forms, views e templates
    • 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
    • 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)
    • 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)
    • 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 %}
    • 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'),
      • )
    • Criando Artigos no Site
      • O que temos até agora:
      Mas ainda não funciona!!!
    • 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
      • ....
    • 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 ]))
    • 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)
    • 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 %}
    • Fluxo Atual
    • Obrigado!
    • 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 )