Aplicacoes Rapidas Para Web Com Django

2.388 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.388
No SlideShare
0
A partir de incorporações
0
Número de incorporações
421
Ações
Compartilhamentos
0
Downloads
60
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aplicacoes Rapidas Para Web Com Django

  1. 1. Aplicações rápidas para Web com Diemesleno Souza Carvalho Software Freedom Day - Campo Grande – MS 20 de Setembro de 2008
  2. 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. 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.
  4. 4. Apresentação MVC x MTV
  5. 5. Apresentação Models Modelos de dados. class Exemplo(models.Model): pass
  6. 6. Apresentação Templates {% tags %} {{ variáveis }}
  7. 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})
  8. 8. Apresentação • Lawrence Journal-World (http://www.ljworld.com)
  9. 9. Apresentação • Guitarrista Belga • Grande nome do Jazz • Django Reinhardt
  10. 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)
  11. 11. Mercado de trabalho Há vagas!
  12. 12. Mercado de trabalho • http://www.pythonbrasil.com.br/moin.cgi/OportunidadesDeEmprego (42 Vagas) • http://djangogigs.com/ (242 Vagas) • http://simonwillison.net/2008/Jan/18/django/ (74 Vagas) • http://www.python.org/community/jobs/ (221 Vagas)
  13. 13. Mercado de trabalho
  14. 14. Curiosidade… Do mesmo criador do digg
  15. 15. Curiosidade… Leah Culver
  16. 16. Curiosidade… Leah Culver
  17. 17. Instalação • Python 2.3+ • Database: PostgreSQL, MySQL, SQLite3 • Django 1.0
  18. 18. Instalando Django (1.0) • apt-get install python-django • http://www.djangoproject.com/download/ – tar xvzf Django-1.0.tar.gz – cd Django-1.0 – sudo python setup.py install
  19. 19. Prática Desenvolvendo uma aplicação simples
  20. 20. Prática Projeto (site) : empresa /admin/ Application : admin Application : admin Aplicação : admin /vagas/ Aplicação : vagas Database
  21. 21. Prática django-admin.py startproject empresa empresa __init__.py pacote/* manage.py gerenciador/* settings.py configurações/* urls.py rotas/*
  22. 22. Prática python manage.py startapp vagas cd vagas __init__.py app/pacote/* models.py app/models/* views.py app/views/*
  23. 23. Prática cd empresa Editar settings.py ADMINS = ( (‘Diemesleno Souza Carvalho’, ‘diemesleno@gmail.com’), ) DATABASE_ENGINE = ‘mysql’ DATABASE_NAME = ‘empresa’ DATABASE_USER = ‘root’ DATABASE_PASSWORD = ‘123’ DATABASE_HOST = ‘localhost’
  24. 24. Prática TIME_ZONE = ‘America/Campo Grande’ LANGUAGE_CODE = ‘pt-br’ TEMPLATE_DIRS = ( ‘/home/diemesleno/livre/templates/’, )
  25. 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. 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. 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. 28. Criando um Modelo … # Definindo a função para retorno da classe def __unicode__(self): return “%s (%s)” % (self.titulo, self.local)
  29. 29. Ativando o modelo(Aplicação) Editar settings.py INSTALLED_APPS INSTALLED_APPS = ( ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.sites’, ‘django.contrib.admin’, ‘django.contrib.admindocs’, ‘empresa.vagas’, )
  30. 30. Visualizando o SQL python manage.py sql vagas
  31. 31. Executando o SQL python manage.py syncdb
  32. 32. Interface Admin cd vagas touch admin.py vim admin.py
  33. 33. Interface Admin from empresa.vagas.models import Local from empresa.vagas.models import Emprego from django.contrib import admin Class LocalAdmin(admin.ModelAdmin): list_display = (“titulo”, “descricao”, “local”, “publicado”) ordering = [“-publicado”] search_fields = (“titulo”, “descricao”) list_filter = (“local”,) admin.site.register(Local, LocalAdmin) admin.site.register(Emprego, EmpregoAdmin)
  34. 34. Interface Admin python manage.py runserver http://localhost:8000/admin/
  35. 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. 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. 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. 38. Editar os templates Relembrando: (settings.py) TEMPLATE_DIRS = ( ‘/home/diemesleno/livre/templates/’, ) cd /home/diemesleno/livre/ mkdir templates cd templates
  39. 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>
  40. 40. Editar os templates mkdir empresa cd empresa vim base.html
  41. 41. Editar os templates {% extends “base.html” %} {% block extrahead %} <style> body { font-style: arial; color: navy; } h1 { text-align: center; } .job .title { font-size: 120px; font-weight: bold; } .job .posted { font-style: italic; } a.link { text-decoration: none; } a.visited { text-decoration:none; } a.hover { text-decoration: underline overline; background: #ffc; color: #FF0000; </style> {% endblock %}
  42. 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. 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> …
  44. 44. Editar os templates … <div class=“posted”> Postado em: {{ vaga.publicado|date: “d-M-Y” }} </div> <div class=“description”> {{ vaga.descricao }} </div> </div> <p>&nbsp;</p> <a href=“/jobs/”>Voltar</a> {% endblock %}
  45. 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.
  46. 46. Referências • http://djangoproject.com/documentation/ • http://code.djangoproject.com/ • http://groups.google.com/group/django-user • http://groups.google.com/group/django- developers
  47. 47. Principal referência http://www.google.com.br
  48. 48. Dúvidas ???
  49. 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

×