Django: O Framework web para perfeccionistas com prazos
-
Upload
francisco-souza -
Category
Documents
-
view
1.324 -
download
0
description
Transcript of Django: O Framework web para perfeccionistas com prazos
Desenvolvendo
Desenvolvendo
aplicações web
Desenvolvendo
aplicações webem tempo
Desenvolvendo
aplicações webem tempo
RECORDE.
35
30
20
10
O teclado mais rápido do Oeste.
O teclado mais rápido do Oeste.
#$%&*&@#@#
#@$%
DjangoO framework web para perfeccionistas com prazos
quem é você?
Welcome to the Django!
mas qual é a relação?
Magia
Abrindo a caixa
Orientado a aplicações
MVC?
MVC?+-
Cliente (browser)
URLTemplate
View
Model
Banco de dados
GET /livros
URLTemplate
View
Model
Banco de dados
GET /livros
Módulo de URLsTemplate
View
Model
Banco de dados
(r'^livros/$', 'views.listar_livros'),
GET /livros
Módulo de URLsTemplate
listar_livros(request)
Model
Banco de dados
def listar_livros(request): livros = Livro.objects.all() return render_to_response('livros.html', locals())
listar_livros(request)
GET /livros
Módulo de URLsTemplate
Model: classe Livro
Banco de dados
class Livro(Model): titulo = CharField(max_length = 100)
def listar_livros(request): livros = Livro.objects.all() return render_to_response('livros.html', locals())
Model: classe Livro
GET /livros
Módulo de URLsTemplate
Não importa (:
listar_livros(request)
def listar_livros(request): livros = Livro.objects.all() return render_to_response('livros.html', locals())
listar_livros(request)
Model: classe Livro
GET /livros
Módulo de URLslivros.html
def listar_livros(request): livros = Livro.objects.all() return render_to_response('livros.html', locals())
<ul> {% for livro in livros %} <li>{{ livro.titulo }}</li> {% endfor %}</ul>
livros.html
listar_livros(request)
Model: classe Livro
Módulo de URLs
GET /livros
Cliente (browser)
URL
Banco de dados
Template
View
Model
E mais...
E mais...
6 linhas de código Python.
E mais...
6 linhas de código Python.
5 linhas de html/template.
E mais...
6 linhas de código Python.
5 linhas de html/template.SQL?
Amazing!!!
Amazing!!!
Asombroso!!!
Surpreendente!!!
i18n
Autenticação
@login_requireddef listar_livros(request): livros = Livro.objects.all() return render_to_response('livros.html', locals())
Autenticação
Controle de permissão
Controle de permissão
@permission_required('livros.pode_listar')def listar_livros(request): livros = Livro.objects.all() return render_to_response('livros.html', locals())
Django Forms
Django Forms
class LivroForm(Form): titulo = CharField(max_length = 100)
Django Forms
class LivroForm(Form): titulo = CharField(max_length = 100)
class Livro(Model): titulo = CharField(max_length = 100)
Django Forms
class LivroForm(ModelForm): class Meta: model = Livro
Django Forms
class LivroForm(ModelForm): class Meta: model = Livro
class Livro(Model): titulo = CharField(max_length = 100) autor = CharField(max_length = 255) descricao = CharField(max_length = 1024)
Django Forms
class LivroForm(ModelForm): class Meta: model = Livro
class Livro(Model): titulo = CharField(max_length = 100) autor = CharField(max_length = 255) descricao = CharField(max_length = 1024)
Tem um desses pra Fórmula 1?
Django Forms
class LivroForm(ModelForm): class Meta: model = Livro
class Livro(Model): titulo = CharField(max_length = 100) autor = CharField(max_length = 255) descricao = CharField(max_length = 1024)
Tá de sacanagem?!
Tem um desses pra Fórmula 1?
L10n
class PessoaForm(Form): nome = CharField(max_length = 100) cpf = CPFField() telefone = BRPhoneField()
L10n
class PessoaForm(Form): nome = CharField(max_length = 100) cpf = CPFField() telefone = BRPhoneField()
1/2
2/2
Da pra fazer melhor?
Django admin
class Livro(Model): titulo = CharField(max_length = 100)
class Livro(Model): titulo = CharField(max_length = 100)
admin.site.register(Livro)
class Livro(Model): titulo = CharField(max_length = 100)
admin.site.register(Livro)
(r'^admin/', include(admin.site.urls)),
class Livro(Model): titulo = CharField(max_length = 100)
admin.site.register(Livro)
(r'^admin/', include(admin.site.urls)),
Resultado?
4
Merece a dancinha
Tem mais?
Tem mais?
PaginaçãoViews genéricasFeedsMensagensCSRFSignalsTestes automatizados[...]
Algumas considerações
Eu não sei Python
Onde e como hospedar?
E agora?
www.djangoproject.com
www.djangobrasil.org
www.aprendendodjango.com
www.djangosites.org
groups.google.com/group/django-brasil
www.djangovideos.com
?/∞
DjangoO framework web para perfeccionistas com prazos