SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
Mini-curso introdutório
      ao Django
Apresentação
    Mini-curso introdutório ao framework Django;
●


    Desenvolver um blog utilizando o Django.
●




     Meio
     Código
Quem sou eu?
    Formado em Engenharia de Computação pela
●

    UFRN;
    Estudante de Pós-Graduação em
●

    Desenvolvimento de Sistemas Corporativos na
    FARN;
    Desenvolvedor de sistemas com interface web;
●


    Um dos autores do blog Meio Código:
●

    http://www.meiocodigo.com/;
    Empresário, sócio da Solucione Sistemas.
●


     Meio
     Código
O que é Django
    Um framework web desenvolvido com a
●

    liguagem Python;
    Padrão MVC;
●


    Ênfase em reusabilidade e plugabilidade;
●


    Desenvolvimento ágil;
●


    Baseado no conceito DRY;
●


    Open source.
●




     Meio
     Código
Funcionamento




Meio
Código
Requisições em Django




Meio
Código
O que é Python

    Linguagem de programação de alto nível;
●


    Interpretada, interativa, orientada a objetos;
●


    Tipagem dinâmica e forte;
●


    Código legível;
●


    Indentação obrigatória.
●




     Meio
     Código
Criando um projeto




Meio
Código
Tela inicial do Django




Meio
Código
Settings

    Localize o arquivo settings.py;
●


    Atribua as seguintes variáveis
●


      DATABASE_ENGINE = 'sqlite3'
    –
    – DATABASE_NAME = 'meu_blog.db'




        Meio
        Código
Aplicações em Django

    Fazem uma tarefa e fazem bem;
●


    Plugabilidade;
●


    Aplicações plugáveis desenvolvidas pela
●

    comunidade;
    http://www.djangopluggables.com/
●




     Meio
     Código
Criando uma aplicação

$ ./manage.py startapp blog




   Meio
   Código
Models

    Camada de abstração do banco de dados;
●


    São classes que herdam de
●

    django.db.models.Model;
    Definem as entidades do sistema;
●


    Possuem campos que representam os campos
●

    do banco de dados;
    Vários campos padrões, mas é simples criar
●

    um novo campo.

     Meio
     Código
Criando um model




Meio
Código
Instalando a aplicação

    Abra o settings.py;
●


    Altere a variável INSTALED_APPS para conter
●

    a nova aplicação.




     Meio
     Código
Gerando o banco de dados




Meio
Código
Criando um superusuário




Meio
Código
Fixtures

    Dados iniciais da aplicação;
●


    Úteis para que a aplicação já seja funcional
●

    mesmo após ter sido instalada.




     Meio
     Código
Django Admin

    Aplicação plugável que vem por padrão no
●

    framework;
    Gera uma interface administrativa com muito
●

    pouco trabalho;
    Acelera a produtividade mas perde em
●

    flexibilidade.




     Meio
     Código
Configurando o Django Admin

    Adicione a aplicação django.contrib.admin às
●

    INSTALLED_APPS;
    Localize o arquivo urls.py;
●


    Descomente as seguintes linhas:
●


      # from django.contrib import admin
    –
    – # admin.autodiscover()
    – # (r'^admin/', include(admin.site.urls)),



        Meio
        Código
Registrando nosso model no Admin

    Crie um arquivo chamado admin.py dentro da
●

    pasta da aplicação blog;




    Sincronize o banco de dados.
●




     Meio
     Código
Views

    Recebem as requisições dos usuários e
●

    retornam uma resposta a essa requisição;
    Respostas podem ser páginas HTML, imagens,
●

    documentos ou qualquer outro formato de
    arquivo;




     Meio
     Código
Generic views

    Views genéricas disponibilizadas junto com o
●

    framework;
    Realizam ações básicas: listar, detalhar,
●

    cadastrar, editar, excluir;




     Meio
     Código
Usando as generic views no blog

    Abra o arquivo urls.py da pasta do projeto e
●

    adicione o seguinte padrão à variável
    urlpatterns: (r'^blog/', include('blog.urls')),
    Crie um arquivo chamado urls.py dentro da
●

    pasta da aplicação blog.




      Meio
      Código
Templates

    Linguagem simples para desenvolvimento de
●

    templates;
    Utiliza template tags e template filters;
●


    Facilidade de criação de novas tags e filters;
●


    Tag block proporciona ótima reusabilidade de
●

    códigos de templates.




      Meio
      Código
Localização dos templates

    É baseada na variável TEMPLATE_LOADERS.
●

    Default:
    1.Pastas especificadas na variável
     TEMPLATE_DIRS do settings.py;
    2.Pasta templates dentro das aplicações
     instaladas.




     Meio
     Código
Configurando uma pasta de templates

    Crie uma pasta chamada templates na raiz do
●

    projeto;
    Abra o settings.py e adicione o seguinte
●

    código:




     Meio
     Código
Criando os templates

    Criar os seguintes templates:
●


      base.html;
    –
    – blog/artigo_list.html;
    – blog/artigo_detail.html.




        Meio
        Código
Servindo arquivos estáticos

    Não deve ser servido pelo django, apesar de
●

    ser possível;
    settings.py
●




    urls.py
●




     Meio
     Código
Adicionando mais cor ao blog

    Alterar o template base.html:
●




     Meio
     Código
Template Context Processors

    São configurados pela variável
●

    TEMPLATE_CONTEXT_PROCESSORS do
    settings.py;




    Adicionam variáveis aos templates.
●




     Meio
     Código
Autenticação - django.contrib.auth

    Aplicação plugável que é distribuída junto com
●

    o django;
    Oferece código pronto para criação de um
●

    módulo de autenticação;
    Baseada em usuários, grupos e permissões.
●




     Meio
     Código
Adicionando auntenticação (1)

    Altere o urls.py para:
●




      Meio
      Código
Adicionando autenticação (2)

    Adicione as seguinte linhas ao settings.py:
●


      LOGIN_REDIRECT_URL = '/'
    –
    – LOGIN_URL = '/login/'

    Crie o template login.html;
●


    Altere o template base.html:
●




        Meio
        Código
Escrever, editar e excluir

    Altere o blog/urls.py para ficar assim:
●




     Meio
     Código
Criando os templates

    Criar os seguintes templates:
●


       blog/artigo_form.html
    –
     – blog/artigo_confirm_delete.html

    Alterar o template blog/artigo_detail.html:
●




    Alterar o template base.html:
●




        Meio
        Código
django.contrib.flatpages

    Aplicação plugável que é distribuída junto com
●

    o django;
    Viabiliza a criação de páginas planas, sem
●

    conteúdo dinâmico, através de uma interface
    administrativa.




     Meio
     Código
Configurando as FlatPages

    Adicione django.contrib.flatpages ao
●

    INSTALLED_APPS;
    Adicione
●

    django.contrib.flatpages.middleware.FlatpageF
    allbackMiddleware;
    Sincronize o banco de dados;
●


    Crie o template flatpages/default.html.
●




     Meio
     Código
Middlewares

    Possibilitam a execução de ações entre a
●

    requisição do usuário e as views.




     Meio
     Código
Criando a página 'Sobre'

    Entre no admin (/admin/);
●


    Clique no link 'Add' ao lado de 'Flat pages';
●


    Informe os seguintes dados:
●


      URL: /sobre/
    –
    – Title: Sobre
    – Conteúdo: <qualquer texto>
    – Sites: example.com



        Meio
        Código
RSS - django.contrib.syndication

    Aplicação plugável que é distribuída
●

    juntamente com o django;
    Possibilita a geração de feeds RSS facilmente.
●




     Meio
     Código
Configurando o Syndication

    Adicione a seguinte linha ao urls.py:
●


      from feeds import LatestEntries
    –

    Adicione o seguinte padrão ao urls.py:
●




    Adicione a seguinte linha ao base.html:
●




        Meio
        Código
Criando a classe do feed

    Crie um arquivo feeds.py:
●




     Meio
     Código
Alterando a URL do site




Meio
Código
Comentários -
         django.contrib.comments
    Aplicação plugável que é distribuída junto com
●

    o django;
    Oferece uma API simples para possibilitar
●

    comentários em qualquer Model.




     Meio
     Código
Configurando os comentários (1)

    Adicione django.contrib.comments à variável
●

    INSTALLED_APPS;
    Adicione o seguinte padrão ao urls.py:
●


      (r'comments/',
    –
      include('django.contrib.comment.urls')),
    Sincronize o banco de dados.
●




        Meio
        Código
Configurando os comentários (2)

    Altere o blog/artigo_list.html:
●




      Meio
      Código
Configurando os comentários (3)

    Altere o blog/artigo_detail.html:
●




      Meio
      Código
Internacionalização

    Mudar idioma e formato de data;
●


    Adicione as seguintes linhas ao settings.py:
●


      TIME_ZONE = 'America/Fortaleza'
    –
    – LANGUAGE_CODE = 'pt-BR'
    – DATE_FORMAT = u'd/m/Y'




        Meio
        Código
Referências

    http://www.djangoproject.com/
●


    http://www.python.org/
●


    http://www.meiocodigo.com/
●


    http://www.djangobrasil.org/
●


    http://www.aprendendodjango.com/
●




     Meio
     Código
Duvidas?

    vbmendes@gmail.com
●




     Meio
     Código

Weitere ähnliche Inhalte

Was ist angesagt?

Html aula 1
Html aula 1Html aula 1
Html aula 1Sedu
 
Iniciando em html5 seleção gustavo
Iniciando em html5   seleção gustavoIniciando em html5   seleção gustavo
Iniciando em html5 seleção gustavoGustavo Passos
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpRodrigo Aramburu
 
HTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEB
HTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEBHTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEB
HTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEBPeslPinguim
 
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphereCriando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphereJuliano Martins
 
HTML 5 A evolução do HTML 4 para o HTML 5
HTML 5 A evolução do HTML 4 para o HTML 5HTML 5 A evolução do HTML 4 para o HTML 5
HTML 5 A evolução do HTML 4 para o HTML 5ondazul
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPMarcelo Andrade
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Como criar um plugin para WordPress
Como criar um plugin para WordPressComo criar um plugin para WordPress
Como criar um plugin para WordPressLeandrinho Vieira
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsEmerson Soares
 
Aula de HTML5 - DevCampos - www.devcampos.com.br
Aula de HTML5 - DevCampos - www.devcampos.com.brAula de HTML5 - DevCampos - www.devcampos.com.br
Aula de HTML5 - DevCampos - www.devcampos.com.brDevCampos
 
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?Renato Bongiorno Bonfanti
 
Html5 - Notas de aula
Html5 - Notas de aulaHtml5 - Notas de aula
Html5 - Notas de aulaclodiney cruz
 
SEO - Otimização de Sites
SEO - Otimização de SitesSEO - Otimização de Sites
SEO - Otimização de SitesRicardo Martins
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 

Was ist angesagt? (20)

Html aula 1
Html aula 1Html aula 1
Html aula 1
 
Iniciando em html5 seleção gustavo
Iniciando em html5   seleção gustavoIniciando em html5   seleção gustavo
Iniciando em html5 seleção gustavo
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephp
 
HTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEB
HTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEBHTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEB
HTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEB
 
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphereCriando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere
 
Introdução a HTML5
Introdução a HTML5Introdução a HTML5
Introdução a HTML5
 
Search Plugins para Firefox
Search Plugins para FirefoxSearch Plugins para Firefox
Search Plugins para Firefox
 
HTML 5 A evolução do HTML 4 para o HTML 5
HTML 5 A evolução do HTML 4 para o HTML 5HTML 5 A evolução do HTML 4 para o HTML 5
HTML 5 A evolução do HTML 4 para o HTML 5
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Como criar um plugin para WordPress
Como criar um plugin para WordPressComo criar um plugin para WordPress
Como criar um plugin para WordPress
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
 
Aula de HTML5 - DevCampos - www.devcampos.com.br
Aula de HTML5 - DevCampos - www.devcampos.com.brAula de HTML5 - DevCampos - www.devcampos.com.br
Aula de HTML5 - DevCampos - www.devcampos.com.br
 
CakePHP
CakePHPCakePHP
CakePHP
 
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?
 
Angular js
Angular jsAngular js
Angular js
 
Html5 - Notas de aula
Html5 - Notas de aulaHtml5 - Notas de aula
Html5 - Notas de aula
 
SEO - Otimização de Sites
SEO - Otimização de SitesSEO - Otimização de Sites
SEO - Otimização de Sites
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 

Andere mochten auch

Django, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webDjango, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webMayron Cachina
 
Boas práticas de django
Boas práticas de djangoBoas práticas de django
Boas práticas de djangoFilipe Ximenes
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de djangorosenclever
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonGrupo de Testes Carioca
 
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
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 

Andere mochten auch (11)

Django, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webDjango, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento web
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Boas práticas de django
Boas práticas de djangoBoas práticas de django
Boas práticas de django
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de django
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em python
 
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
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Introdução ao Django
Introdução ao DjangoIntrodução ao Django
Introdução ao Django
 

Ähnlich wie Mini curso introdutório ao Django

Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de DjangoLeandro Zanuz
 
Wordpress e suas funções
Wordpress e suas funçõesWordpress e suas funções
Wordpress e suas funçõesDaniel Marcos
 
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
 
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
 
Apresentação de Django Extension
Apresentação de Django ExtensionApresentação de Django Extension
Apresentação de Django ExtensionMoacir Filho
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniterAnderson Gonçalves
 
Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018Rafael Sales Pavarina
 
Minicurso code igniter aula 2
Minicurso code igniter   aula 2Minicurso code igniter   aula 2
Minicurso code igniter aula 2lfernandomcj
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2Cezar Souza
 
Python e Django
Python e DjangoPython e Django
Python e Djangopugpe
 
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
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosphelypploch
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 

Ähnlich wie Mini curso introdutório ao Django (20)

Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de Django
 
Django Módulo Básico Parte II
Django Módulo Básico Parte IIDjango Módulo Básico Parte II
Django Módulo Básico Parte II
 
Oficina de Django
Oficina de DjangoOficina de Django
Oficina de Django
 
My first app django
My first app djangoMy first app django
My first app django
 
Wordpress e suas funções
Wordpress e suas funçõesWordpress e suas funções
Wordpress e suas funções
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
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
 
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
 
Mini curso de c#.net
Mini curso de c#.netMini curso de c#.net
Mini curso de c#.net
 
Apresentação de Django Extension
Apresentação de Django ExtensionApresentação de Django Extension
Apresentação de Django Extension
 
Python 08
Python 08Python 08
Python 08
 
Introdução ao framework CodeIgniter
Introdução ao framework CodeIgniterIntrodução ao framework CodeIgniter
Introdução ao framework CodeIgniter
 
Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018
 
Django Básico
Django BásicoDjango Básico
Django Básico
 
Minicurso code igniter aula 2
Minicurso code igniter   aula 2Minicurso code igniter   aula 2
Minicurso code igniter aula 2
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
 
Python e Django
Python e DjangoPython e Django
Python e 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
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 

Mini curso introdutório ao Django

  • 2. Apresentação Mini-curso introdutório ao framework Django; ● Desenvolver um blog utilizando o Django. ● Meio Código
  • 3. Quem sou eu? Formado em Engenharia de Computação pela ● UFRN; Estudante de Pós-Graduação em ● Desenvolvimento de Sistemas Corporativos na FARN; Desenvolvedor de sistemas com interface web; ● Um dos autores do blog Meio Código: ● http://www.meiocodigo.com/; Empresário, sócio da Solucione Sistemas. ● Meio Código
  • 4. O que é Django Um framework web desenvolvido com a ● liguagem Python; Padrão MVC; ● Ênfase em reusabilidade e plugabilidade; ● Desenvolvimento ágil; ● Baseado no conceito DRY; ● Open source. ● Meio Código
  • 7. O que é Python Linguagem de programação de alto nível; ● Interpretada, interativa, orientada a objetos; ● Tipagem dinâmica e forte; ● Código legível; ● Indentação obrigatória. ● Meio Código
  • 9. Tela inicial do Django Meio Código
  • 10. Settings Localize o arquivo settings.py; ● Atribua as seguintes variáveis ● DATABASE_ENGINE = 'sqlite3' – – DATABASE_NAME = 'meu_blog.db' Meio Código
  • 11. Aplicações em Django Fazem uma tarefa e fazem bem; ● Plugabilidade; ● Aplicações plugáveis desenvolvidas pela ● comunidade; http://www.djangopluggables.com/ ● Meio Código
  • 12. Criando uma aplicação $ ./manage.py startapp blog Meio Código
  • 13. Models Camada de abstração do banco de dados; ● São classes que herdam de ● django.db.models.Model; Definem as entidades do sistema; ● Possuem campos que representam os campos ● do banco de dados; Vários campos padrões, mas é simples criar ● um novo campo. Meio Código
  • 15. Instalando a aplicação Abra o settings.py; ● Altere a variável INSTALED_APPS para conter ● a nova aplicação. Meio Código
  • 16. Gerando o banco de dados Meio Código
  • 18. Fixtures Dados iniciais da aplicação; ● Úteis para que a aplicação já seja funcional ● mesmo após ter sido instalada. Meio Código
  • 19. Django Admin Aplicação plugável que vem por padrão no ● framework; Gera uma interface administrativa com muito ● pouco trabalho; Acelera a produtividade mas perde em ● flexibilidade. Meio Código
  • 20. Configurando o Django Admin Adicione a aplicação django.contrib.admin às ● INSTALLED_APPS; Localize o arquivo urls.py; ● Descomente as seguintes linhas: ● # from django.contrib import admin – – # admin.autodiscover() – # (r'^admin/', include(admin.site.urls)), Meio Código
  • 21. Registrando nosso model no Admin Crie um arquivo chamado admin.py dentro da ● pasta da aplicação blog; Sincronize o banco de dados. ● Meio Código
  • 22. Views Recebem as requisições dos usuários e ● retornam uma resposta a essa requisição; Respostas podem ser páginas HTML, imagens, ● documentos ou qualquer outro formato de arquivo; Meio Código
  • 23. Generic views Views genéricas disponibilizadas junto com o ● framework; Realizam ações básicas: listar, detalhar, ● cadastrar, editar, excluir; Meio Código
  • 24. Usando as generic views no blog Abra o arquivo urls.py da pasta do projeto e ● adicione o seguinte padrão à variável urlpatterns: (r'^blog/', include('blog.urls')), Crie um arquivo chamado urls.py dentro da ● pasta da aplicação blog. Meio Código
  • 25. Templates Linguagem simples para desenvolvimento de ● templates; Utiliza template tags e template filters; ● Facilidade de criação de novas tags e filters; ● Tag block proporciona ótima reusabilidade de ● códigos de templates. Meio Código
  • 26. Localização dos templates É baseada na variável TEMPLATE_LOADERS. ● Default: 1.Pastas especificadas na variável TEMPLATE_DIRS do settings.py; 2.Pasta templates dentro das aplicações instaladas. Meio Código
  • 27. Configurando uma pasta de templates Crie uma pasta chamada templates na raiz do ● projeto; Abra o settings.py e adicione o seguinte ● código: Meio Código
  • 28. Criando os templates Criar os seguintes templates: ● base.html; – – blog/artigo_list.html; – blog/artigo_detail.html. Meio Código
  • 29. Servindo arquivos estáticos Não deve ser servido pelo django, apesar de ● ser possível; settings.py ● urls.py ● Meio Código
  • 30. Adicionando mais cor ao blog Alterar o template base.html: ● Meio Código
  • 31. Template Context Processors São configurados pela variável ● TEMPLATE_CONTEXT_PROCESSORS do settings.py; Adicionam variáveis aos templates. ● Meio Código
  • 32. Autenticação - django.contrib.auth Aplicação plugável que é distribuída junto com ● o django; Oferece código pronto para criação de um ● módulo de autenticação; Baseada em usuários, grupos e permissões. ● Meio Código
  • 33. Adicionando auntenticação (1) Altere o urls.py para: ● Meio Código
  • 34. Adicionando autenticação (2) Adicione as seguinte linhas ao settings.py: ● LOGIN_REDIRECT_URL = '/' – – LOGIN_URL = '/login/' Crie o template login.html; ● Altere o template base.html: ● Meio Código
  • 35. Escrever, editar e excluir Altere o blog/urls.py para ficar assim: ● Meio Código
  • 36. Criando os templates Criar os seguintes templates: ● blog/artigo_form.html – – blog/artigo_confirm_delete.html Alterar o template blog/artigo_detail.html: ● Alterar o template base.html: ● Meio Código
  • 37. django.contrib.flatpages Aplicação plugável que é distribuída junto com ● o django; Viabiliza a criação de páginas planas, sem ● conteúdo dinâmico, através de uma interface administrativa. Meio Código
  • 38. Configurando as FlatPages Adicione django.contrib.flatpages ao ● INSTALLED_APPS; Adicione ● django.contrib.flatpages.middleware.FlatpageF allbackMiddleware; Sincronize o banco de dados; ● Crie o template flatpages/default.html. ● Meio Código
  • 39. Middlewares Possibilitam a execução de ações entre a ● requisição do usuário e as views. Meio Código
  • 40. Criando a página 'Sobre' Entre no admin (/admin/); ● Clique no link 'Add' ao lado de 'Flat pages'; ● Informe os seguintes dados: ● URL: /sobre/ – – Title: Sobre – Conteúdo: <qualquer texto> – Sites: example.com Meio Código
  • 41. RSS - django.contrib.syndication Aplicação plugável que é distribuída ● juntamente com o django; Possibilita a geração de feeds RSS facilmente. ● Meio Código
  • 42. Configurando o Syndication Adicione a seguinte linha ao urls.py: ● from feeds import LatestEntries – Adicione o seguinte padrão ao urls.py: ● Adicione a seguinte linha ao base.html: ● Meio Código
  • 43. Criando a classe do feed Crie um arquivo feeds.py: ● Meio Código
  • 44. Alterando a URL do site Meio Código
  • 45. Comentários - django.contrib.comments Aplicação plugável que é distribuída junto com ● o django; Oferece uma API simples para possibilitar ● comentários em qualquer Model. Meio Código
  • 46. Configurando os comentários (1) Adicione django.contrib.comments à variável ● INSTALLED_APPS; Adicione o seguinte padrão ao urls.py: ● (r'comments/', – include('django.contrib.comment.urls')), Sincronize o banco de dados. ● Meio Código
  • 47. Configurando os comentários (2) Altere o blog/artigo_list.html: ● Meio Código
  • 48. Configurando os comentários (3) Altere o blog/artigo_detail.html: ● Meio Código
  • 49. Internacionalização Mudar idioma e formato de data; ● Adicione as seguintes linhas ao settings.py: ● TIME_ZONE = 'America/Fortaleza' – – LANGUAGE_CODE = 'pt-BR' – DATE_FORMAT = u'd/m/Y' Meio Código
  • 50. Referências http://www.djangoproject.com/ ● http://www.python.org/ ● http://www.meiocodigo.com/ ● http://www.djangobrasil.org/ ● http://www.aprendendodjango.com/ ● Meio Código
  • 51. Duvidas? vbmendes@gmail.com ● Meio Código