SlideShare uma empresa Scribd logo
1 de 22
Web Framework
THIAGO AVELINO

•   Trabalha com Software Livre desde 2005

•   Desenvolvedor Python desde 2006

•   Committer de alguns projetos OpenSource

    •   CentOS (Kernel)

    •   MongoDB

    •   Algumas bibliotecas Python (MongoEngine)
O QUE É DJANGO?


•   Framework web desenvolvido em Python

•   Padrão MVC

•   Ênfase em reusabilidade e conectividade

•   Desenvolvimento ágil

•   Conceito DRY

•   Open Source
ENTENDENDO O DJANGO
REQUISIÇÕES EM DJANGO
PYTHON


•   Linguagem de programação de alto nível

•   Orientada a objetos

•   Tipagem dinâmica e forte

•   Código legível

•   Indentação obrigatória

•   Open Source
CRIANDO PROJETO EM DJANGO

# django-admin.py startproject oficinadjango
# cd oficinadjango
# ls
__init__.py manage.py settings.py urls.py
# python manage.py runserver
Validating models...
0 errors found

Django version 1.2.3, using settings 'oficinadjango.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
TELA INICIAL DO DJANGO
CONFIGURANDO O PROJETO


Abra o arquivo settings.py

 DATABASE_ENGINE = ‘sqlite3’
 DATABASE_NAME = ‘app.db’
CRIANDO UMA APLICAÇÃO


# python manage.py startapp testando
# cd testando
# ls
__init__.py models.py tests.py views.py
MODELS




•   Cada class é uma table

•   São class que herdam de django.db.models.Model
CRIANDO UM MODELS
INSTALANDO APLICAÇÃO


Abra o arquivo settings.py


 INSTALED_APPS = (‘testando’)
GERANDO BANCO DE DADOS

# python manage.py syncdb
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use 'avelino'):
E-mail address: thiago.avelino@gonow.com.br
Password:
Password (again):
Superuser created successfully.
Installing index for auth.Permission model
Installing index for auth.Group_permissions model
Installing index for auth.User_user_permissions model
Installing index for auth.User_groups model
Installing index for auth.Message model
No fixtures found.
DJANGO ADMIN


•   Interface grafica de adminstração de todas as aplicações no sistema

•   Orientada a objetos

•   Tipagem dinâmica e forte

•   Código legível

•   Indentação obrigatória

•   Open Source
VIEWS


•   Recebem as requisições dos usuário

•   Retorna uma resposta para a requisição, resposta pode ser uma página HTML ou qual quer
    outro tipo de documento.
TEMPLATE


•   Linguagem simples

•   Template tags

•   Tag Block
CONFIGURANDO TEMPLATE
Crie uma pasta chamada “template” na raiz do seu projeto.

 import os
 MEDIA_ROOT = os.path.dirname(os.path.abspath(__file__))
 TEMPLATE_DIRS = (‘os.path.abspath(os.path.join(MEDIA_ROOT,‘template’)’)
AUTENTICAÇÃO
                                       django.contrib.auth



•   Modulo de autenticação do Django

•   Usuários, grupos e permissões

•   Aplicações plugável
RSS / FEEDS
                           django.contrib.syndication




•   Criação de feeds RSS

•   Aplicações plugável
INTERNACIONALIZAÇÃO


•   Mudar idioma

•   Formato de data

    Mude o arquivo settings.py

     TIME_ZONE = ‘America/Sao_Paulo’
     LANGUAGE_CODE = ‘pt-BR’
     DATE_FORMAT = u’d/m/Y’
OBRIGADO!!! PERGUNTAS?

             Thiago Avelino
     thiago.avelino@gonow.com.br

          Twitter: @avelino0
        Blog: http://blog.avelino.us

Mais conteúdo relacionado

Semelhante a Oficina de Django

Desenvolvimento de uma plataforma de bookmarking social com Django e TDD
Desenvolvimento de uma plataforma de bookmarking social com Django e TDDDesenvolvimento de uma plataforma de bookmarking social com Django e TDD
Desenvolvimento de uma plataforma de bookmarking social com Django e TDDRodrigo Fernandes
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Mini curso introdutório ao Django
Mini curso introdutório ao DjangoMini curso introdutório ao Django
Mini curso introdutório ao DjangoVinicius Mendes
 
F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G Ofabio.thomaz
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Webantonio sérgio nogueira
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Desmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkDesmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkBruno Oliveira
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dadosVisual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dadosFernando Henrique
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Renato Groffe
 

Semelhante a Oficina de Django (20)

Python 06
Python 06Python 06
Python 06
 
Desenvolvimento de uma plataforma de bookmarking social com Django e TDD
Desenvolvimento de uma plataforma de bookmarking social com Django e TDDDesenvolvimento de uma plataforma de bookmarking social com Django e TDD
Desenvolvimento de uma plataforma de bookmarking social com Django e TDD
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Mini curso introdutório ao Django
Mini curso introdutório ao DjangoMini curso introdutório ao Django
Mini curso introdutório ao Django
 
F R A M E W O R K D J A N G O
F R A M E W O R K  D J A N G OF R A M E W O R K  D J A N G O
F R A M E W O R K D J A N G O
 
Django Básico
Django BásicoDjango Básico
Django Básico
 
Django
DjangoDjango
Django
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
My first app django
My first app djangoMy first app django
My first app django
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Desmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkDesmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest Framework
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Com vocês, Django!
Com vocês, Django!Com vocês, Django!
Com vocês, Django!
 
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dadosVisual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
 

Mais de Thiago Avelino

Bottle, o full stack sem Django
Bottle, o full stack sem DjangoBottle, o full stack sem Django
Bottle, o full stack sem DjangoThiago Avelino
 
MongoDB native to web development - London Framework
MongoDB native to web development - London FrameworkMongoDB native to web development - London Framework
MongoDB native to web development - London FrameworkThiago Avelino
 
O que é CMS? Foco no conteúdo e não no lero lero
O que é CMS? Foco no conteúdo e não no lero leroO que é CMS? Foco no conteúdo e não no lero lero
O que é CMS? Foco no conteúdo e não no lero leroThiago Avelino
 
Modelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBModelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBThiago Avelino
 
NoSQL for Search - Riak
NoSQL for Search - RiakNoSQL for Search - Riak
NoSQL for Search - RiakThiago Avelino
 
NoSQL, o que realmente é?
NoSQL, o que realmente é?NoSQL, o que realmente é?
NoSQL, o que realmente é?Thiago Avelino
 
MongoGrid Hosting de MongoDB Open Source
MongoGrid Hosting de MongoDB Open Source MongoGrid Hosting de MongoDB Open Source
MongoGrid Hosting de MongoDB Open Source Thiago Avelino
 
Node.js em produção, javascript no server side
Node.js em produção, javascript no server sideNode.js em produção, javascript no server side
Node.js em produção, javascript no server sideThiago Avelino
 
Test é para os fracos
Test é para os fracosTest é para os fracos
Test é para os fracosThiago Avelino
 
Integrando python ao mongodb
Integrando python ao mongodbIntegrando python ao mongodb
Integrando python ao mongodbThiago Avelino
 

Mais de Thiago Avelino (13)

Bottle, o full stack sem Django
Bottle, o full stack sem DjangoBottle, o full stack sem Django
Bottle, o full stack sem Django
 
MongoDB native to web development - London Framework
MongoDB native to web development - London FrameworkMongoDB native to web development - London Framework
MongoDB native to web development - London Framework
 
O que é CMS? Foco no conteúdo e não no lero lero
O que é CMS? Foco no conteúdo e não no lero leroO que é CMS? Foco no conteúdo e não no lero lero
O que é CMS? Foco no conteúdo e não no lero lero
 
Modelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBModelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDB
 
NoSQL for Search - Riak
NoSQL for Search - RiakNoSQL for Search - Riak
NoSQL for Search - Riak
 
NoSQL, o que realmente é?
NoSQL, o que realmente é?NoSQL, o que realmente é?
NoSQL, o que realmente é?
 
MongoGrid Hosting de MongoDB Open Source
MongoGrid Hosting de MongoDB Open Source MongoGrid Hosting de MongoDB Open Source
MongoGrid Hosting de MongoDB Open Source
 
Node.js em produção, javascript no server side
Node.js em produção, javascript no server sideNode.js em produção, javascript no server side
Node.js em produção, javascript no server side
 
Beaga.JS
Beaga.JSBeaga.JS
Beaga.JS
 
Test é para os fracos
Test é para os fracosTest é para os fracos
Test é para os fracos
 
sampa.js end
sampa.js endsampa.js end
sampa.js end
 
sampa.js start
sampa.js startsampa.js start
sampa.js start
 
Integrando python ao mongodb
Integrando python ao mongodbIntegrando python ao mongodb
Integrando python ao mongodb
 

Oficina de Django

  • 2. THIAGO AVELINO • Trabalha com Software Livre desde 2005 • Desenvolvedor Python desde 2006 • Committer de alguns projetos OpenSource • CentOS (Kernel) • MongoDB • Algumas bibliotecas Python (MongoEngine)
  • 3. O QUE É DJANGO? • Framework web desenvolvido em Python • Padrão MVC • Ênfase em reusabilidade e conectividade • Desenvolvimento ágil • Conceito DRY • Open Source
  • 6. PYTHON • Linguagem de programação de alto nível • Orientada a objetos • Tipagem dinâmica e forte • Código legível • Indentação obrigatória • Open Source
  • 7. CRIANDO PROJETO EM DJANGO # django-admin.py startproject oficinadjango # cd oficinadjango # ls __init__.py manage.py settings.py urls.py # python manage.py runserver Validating models... 0 errors found Django version 1.2.3, using settings 'oficinadjango.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
  • 9. CONFIGURANDO O PROJETO Abra o arquivo settings.py DATABASE_ENGINE = ‘sqlite3’ DATABASE_NAME = ‘app.db’
  • 10. CRIANDO UMA APLICAÇÃO # python manage.py startapp testando # cd testando # ls __init__.py models.py tests.py views.py
  • 11. MODELS • Cada class é uma table • São class que herdam de django.db.models.Model
  • 13. INSTALANDO APLICAÇÃO Abra o arquivo settings.py INSTALED_APPS = (‘testando’)
  • 14. GERANDO BANCO DE DADOS # python manage.py syncdb Creating table auth_permission Creating table auth_group_permissions Creating table auth_group Creating table auth_user_user_permissions Creating table auth_user_groups Creating table auth_user Creating table auth_message Creating table django_content_type Creating table django_session Creating table django_site You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (Leave blank to use 'avelino'): E-mail address: thiago.avelino@gonow.com.br Password: Password (again): Superuser created successfully. Installing index for auth.Permission model Installing index for auth.Group_permissions model Installing index for auth.User_user_permissions model Installing index for auth.User_groups model Installing index for auth.Message model No fixtures found.
  • 15. DJANGO ADMIN • Interface grafica de adminstração de todas as aplicações no sistema • Orientada a objetos • Tipagem dinâmica e forte • Código legível • Indentação obrigatória • Open Source
  • 16. VIEWS • Recebem as requisições dos usuário • Retorna uma resposta para a requisição, resposta pode ser uma página HTML ou qual quer outro tipo de documento.
  • 17. TEMPLATE • Linguagem simples • Template tags • Tag Block
  • 18. CONFIGURANDO TEMPLATE Crie uma pasta chamada “template” na raiz do seu projeto. import os MEDIA_ROOT = os.path.dirname(os.path.abspath(__file__)) TEMPLATE_DIRS = (‘os.path.abspath(os.path.join(MEDIA_ROOT,‘template’)’)
  • 19. AUTENTICAÇÃO django.contrib.auth • Modulo de autenticação do Django • Usuários, grupos e permissões • Aplicações plugável
  • 20. RSS / FEEDS django.contrib.syndication • Criação de feeds RSS • Aplicações plugável
  • 21. INTERNACIONALIZAÇÃO • Mudar idioma • Formato de data Mude o arquivo settings.py TIME_ZONE = ‘America/Sao_Paulo’ LANGUAGE_CODE = ‘pt-BR’ DATE_FORMAT = u’d/m/Y’
  • 22. OBRIGADO!!! PERGUNTAS? Thiago Avelino thiago.avelino@gonow.com.br Twitter: @avelino0 Blog: http://blog.avelino.us

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n