1) The document discusses how to build quick web applications using the Django framework.
2) It covers topics like presenting Django, the importance of documentation, the job market, installing Django on Linux, and creating a simple application.
3) The presentation includes creating models, views, templates, and administering the application using Django's automatic admin interface.
1. Aplicações rápidas para Web
com
Diemesleno Souza Carvalho
Software Freedom Day - Campo Grande – MS
20 de Setembro de 2008
2. Tópicos abordados
• Apresentação do framework.
• A documentação é importante?
• Mercado de trabalho.
• Instalação do Django no GNU/Linux.
• Criação de uma aplicação simples. *
* Caso o tempo permita.
3. Apresentação
• Framework Web de alto nível.
• Desenvolvimento rápido.
• Automatiza coisas repetitivas.
• Segue boas práticas de programação.
• Utiliza os princípios do DRY e ORM.
• Utiliza padrões MVC/MTV.
7. Apresentação
Views
Responsável pela parte que ficará visível.
def index(request):
lista = Emprego.objects.order_by(‘-publicado’)[:10]
return render_to_response(‘vagas/index.html’,{‘lista’:lista})
10. A documentação é importante?
• Conteúdo sempre atualizado.
• Tutoriais passo-a-passo.
• Tradução para português quase completa.
• Excelentes livros já lançados. (inglês)
25. Criando um Modelo
Editando empresa/vagas/models.py
from django.db import models
# Criando uma classe para o “Local”
class Local(models.Model):
cidade = models.CharField(max_length=50)
estado = models.CharField(max_length=50, null=True, blank=True)
pais = models.CharField(max_length=50)
…
26. Criando um Modelo
…
# Definindo a função para o retorno
def __unicode__(self):
if self.estado:
return “%s, %s, %s” % (self.cidade, self.estado, self.pais)
else:
return “%s, %s” % (self.cidade, self.pais)
27. Criando um Modelo
…
# Criando a classe “Emprego”
class Emprego(models.Model):
publicado = models.DateField()
titulo = models.CharField(max_length=50)
descricao = models.TextField()
local = models.ForeignKey(Local)
…
28. Criando um Modelo
…
# Definindo a função para retorno da classe
def __unicode__(self):
return “%s (%s)” % (self.titulo, self.local)
35. Design das URLs
vim url.py
from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns(‘empresa.vagas.views’,
(r’^vagas/$’, ‘index’),
(r’^vagas/(?P<object_id>d+)/$’, ‘detail’),
(r’^admin/(.*)’, admin.site.root),
)
36. Editanto a view
cd vagas
from django.shortcuts import get_object_or_404, render_to_response
from vagas.models import Emprego
def index(request):
lista = Emprego.objects.order_by(‘-publicado’)[:10]
return render_to_response(‘vagas/index.html’,
{‘lista’: lista})
…
37. Editando a view
…
def detail(request, object_id):
vaga = get_object_or_404(Emprego, pk=object_id)
return render_to_response(‘vagas/detail.html’,
{‘vaga’: vaga})
38. Editar os templates
Relembrando: (settings.py)
TEMPLATE_DIRS = (
‘/home/diemesleno/livre/templates/’,
)
cd /home/diemesleno/livre/
mkdir templates
cd templates
39. Editar os templates
vim base.html
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3c.org/1999/xhtml xml:lang=“en” lang=“en”>
<head>
<title> Super Empresa: {% block title %} Page {% endblock %} </title>
{% block extrahead %} {% endblock %}
</head>
<body>
{% block content %} {% endblock %}
</body>
</html>
42. Editar os templates
vim index.html
{% extends “vagas/base.html” %}
{% block title %} Lista de vagas {% endblock %}
{% block content %}
<h1>Lista de vagas</h1>
<ul>
{% for vaga in lista %}
<li><a href=“{{ vaga.id }}”>{{ vaga.titulo }}</a></li>
{% endfor %}
</ul>
{% endblock %}
43. Editar os templates
vim detail.html
{% extends “vagas/base.html” %}
{% block title %} Detalhes da vaga {% endblock %}
{% block content %}
<h1>Detalhes da vaga</h1>
<div class=“job”>
<div class=“title”>
{{ vaga.titulo }}
-
{{ vaga.local }}
</div>
…
45. Conclusão
• Escrito em Python.
• Página de administração simples.
• Design de URLs elegantes.
• Modelos do DB.
• Templates.
• Desenvolvimento Web Rápido, fácil e
poderoso com Django.
49. Obrigado!
Aplicações rápidas com Django
Software Freedom Day – 20 de agosto de 2008
Campo Grande – Mato Grosso do Sul
Contato:
E-mail: diemesleno@gmail.com
msn: d.lenon@gmail.com
Skype: diemesleno