SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Novidades do Django 1.2¶

 •   Suporte a mútiplos bancos de dados

 •   Validação de models

 •   Framework de mensagens

 •   Proteção contra CSRF

 •   Mudanças no contrib.auth

 •   Templatetag ‘if’ mais esperta

 •   Mudanças no admin

 •   E mais ...
Múltiplos bancos de dados¶

 •   Escalabilidade

 •   Integração com outras aplicações

 •   Não é possível manter modelos relacionados (através de ForeignKey ou many-to-many) em bancos diferentes
Múltiplos bancos de dados¶

 DATABASES = {
     'default': {
          'NAME': 'app_data',
          'ENGINE': 'django.db.backends.postgresql_psycopg2',
          'USER': 'postgres_user',
          'PASSWORD': 's3krit'
     },
     'users': {
          'NAME': 'user_data',
          'ENGINE': 'django.db.backends.mysql',
          'USER': 'mysql_user',
          'PASSWORD': 'priv4te'
     }
 }
Múltiplos bancos de dados¶

   QuerySet.using()


   >>> User.objects.using('users').all()


   Model.save(using='db')


   >>> user = User(username='flavioamieiro')
   >>> user.save(using='users')


   Database routers


      Classes que definem quatro métodos:


         •   db_for_read

         •   db_for_write

         •   allow_relation

         •   allow_syncdb
Validação de models¶

 •   Validação de campos específicos

 •   Validação de todo o model

 •   Validação de unicidade de um campo

 •   Usado pelo ModelForm

 •   Não é chamado automaticamente por Model.save()
Framework de mensagens¶

 •   Mensagens baseadas em cookies ou em sessões

 •   Diferentes níveis de mensagens

 •   É possível enviar mensagens para usuários não autenticados
Proteção contra CSRF¶

 from django.views.decorators.csrf import csrf_protect


 @csrf_protect
 def my_view(request):
    # ...
    pass


 <form action="." method="post">
    {% csrf_token %}
    <input type="text">
 </form>
Framework de mensagens¶

 from django.contrib import messages


 def view(request):
    messages.success(request, 'Inscreva-se na pythoncampus')
    # ...


 # template.html
 {% if messages %}
    <ul class="messages">
        {% for message in messages %}
            <li>{{ message }}</li>
        {% endfor %}
    </ul>
 {% endif %}
Mudanças no contrib.auth¶

 •   Permissões por objeto

 •   Permissão para usuários anônimos

 •   Nomes de usuários aceitam mais caracteres
Templatetag ‘if’ mais esperta¶

 # Django 1.1
 {% ifnotequal a b %}
 ...
 {% endifnotequal %}


 # Django 1.2
 {% if a != b %}
 ...
 {% endif %}


   operadores suportados:




 ==, !=, <, >, <=, >=, in, not in
Mudanças no admin¶

 •   Jquery

 •   Campos somente leitura
E mais ...¶

 •   Backends de e-mail

 •   Cache de templates

 •   Fixtures com ‘Natural keys’

 •   Fail Fast para testes

 •   BigIntegerField

 •   Melhorias na localização

 •   Realce de sintaxe nos comandos do django-admin

 •   Feeds podem ser usados diretos como views
Saiba Mais¶

 •   http://docs.djangoproject.com/en/dev/releases/1.2/

 •   http://djangoadvent.com/

 •   http://www.github.com/django/django

Contenu connexe

Tendances (8)

Aula 11 - Controle de sessão em PHP - Programação Web
Aula 11  - Controle de sessão em PHP - Programação WebAula 11  - Controle de sessão em PHP - Programação Web
Aula 11 - Controle de sessão em PHP - Programação Web
 
Curso JavaScript - Aula jQuery
Curso JavaScript - Aula jQueryCurso JavaScript - Aula jQuery
Curso JavaScript - Aula jQuery
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies Cabecalhos
 
Aula 5 - Cookies e Sessões em PHP
Aula 5 - Cookies e Sessões em PHPAula 5 - Cookies e Sessões em PHP
Aula 5 - Cookies e Sessões em PHP
 
Programação web ii aulas 05 e 06
Programação web ii   aulas 05 e 06Programação web ii   aulas 05 e 06
Programação web ii aulas 05 e 06
 
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
 
Aula 02 view state - session - validações
Aula 02   view state - session - validaçõesAula 02   view state - session - validações
Aula 02 view state - session - validações
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 

En vedette

High Performance Django 1
High Performance Django 1High Performance Django 1
High Performance Django 1
DjangoCon2008
 
Django шахрай. версия 4
Django шахрай. версия 4Django шахрай. версия 4
Django шахрай. версия 4
smikler
 
Centro de computo
Centro de computoCentro de computo
Centro de computo
isakatime
 
Tabla de Gustos Musicales Gpo. 311
Tabla de Gustos Musicales Gpo. 311Tabla de Gustos Musicales Gpo. 311
Tabla de Gustos Musicales Gpo. 311
wiliams1993
 
Araceli picasso un viaje por su biografia
Araceli picasso un viaje por su biografiaAraceli picasso un viaje por su biografia
Araceli picasso un viaje por su biografia
jaionesansomendi
 
Tectonica silviaalonso deblauiblanc red
Tectonica silviaalonso deblauiblanc redTectonica silviaalonso deblauiblanc red
Tectonica silviaalonso deblauiblanc red
marasanchezllorens
 

En vedette (20)

Django tips and_tricks (1)
Django tips and_tricks (1)Django tips and_tricks (1)
Django tips and_tricks (1)
 
Social media cheatsheet_creatingresults
Social media cheatsheet_creatingresultsSocial media cheatsheet_creatingresults
Social media cheatsheet_creatingresults
 
Django 1.4-cheatsheet
Django 1.4-cheatsheetDjango 1.4-cheatsheet
Django 1.4-cheatsheet
 
Django 1.1 Tour
Django 1.1 TourDjango 1.1 Tour
Django 1.1 Tour
 
Useful Django 1.4
Useful Django 1.4Useful Django 1.4
Useful Django 1.4
 
High Performance Django 1
High Performance Django 1High Performance Django 1
High Performance Django 1
 
Что нового в Django 1.4
Что нового в Django 1.4Что нового в Django 1.4
Что нового в Django 1.4
 
Cheatsheet
CheatsheetCheatsheet
Cheatsheet
 
Django шахрай. версия 4
Django шахрай. версия 4Django шахрай. версия 4
Django шахрай. версия 4
 
Saúde
SaúdeSaúde
Saúde
 
Redes Sociais: Moda ou Revolução?
Redes Sociais: Moda ou Revolução?Redes Sociais: Moda ou Revolução?
Redes Sociais: Moda ou Revolução?
 
AG Update
AG UpdateAG Update
AG Update
 
Centro de computo
Centro de computoCentro de computo
Centro de computo
 
Propaganda Política Brasileira 2010: candidato à presidente - Adriana Celini ...
Propaganda Política Brasileira 2010: candidato à presidente - Adriana Celini ...Propaganda Política Brasileira 2010: candidato à presidente - Adriana Celini ...
Propaganda Política Brasileira 2010: candidato à presidente - Adriana Celini ...
 
Tabla de Gustos Musicales Gpo. 311
Tabla de Gustos Musicales Gpo. 311Tabla de Gustos Musicales Gpo. 311
Tabla de Gustos Musicales Gpo. 311
 
MSc Final
MSc FinalMSc Final
MSc Final
 
Presentació projecte ciencies
Presentació projecte cienciesPresentació projecte ciencies
Presentació projecte ciencies
 
Araceli picasso un viaje por su biografia
Araceli picasso un viaje por su biografiaAraceli picasso un viaje por su biografia
Araceli picasso un viaje por su biografia
 
Tectonica silviaalonso deblauiblanc red
Tectonica silviaalonso deblauiblanc redTectonica silviaalonso deblauiblanc red
Tectonica silviaalonso deblauiblanc red
 
Tema 3 sociales resumen presentacion
Tema 3 sociales resumen presentacionTema 3 sociales resumen presentacion
Tema 3 sociales resumen presentacion
 

Similaire à Novidades do Django 1.2

Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a
Rômulo Jales
 

Similaire à Novidades do Django 1.2 (20)

Novidades do Django 1.2 e o que vem por ai
Novidades do Django 1.2 e o que vem por aiNovidades do Django 1.2 e o que vem por ai
Novidades do Django 1.2 e o que vem por ai
 
Workshop Django
Workshop DjangoWorkshop Django
Workshop Django
 
Redu walled garden
Redu walled gardenRedu walled garden
Redu walled garden
 
Jj08 otimizacao
Jj08 otimizacaoJj08 otimizacao
Jj08 otimizacao
 
Implementação de
Implementação de Implementação de
Implementação de
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 
Hibernate conceitos
Hibernate conceitosHibernate conceitos
Hibernate conceitos
 
Oficina de Django
Oficina de DjangoOficina de Django
Oficina de Django
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portais
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a
 
Tutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper jsTutorial visão automação de testes e casper js
Tutorial visão automação de testes e casper js
 
Tutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJSTutorial - Visão sobre Automação de Testes com CasperJS
Tutorial - Visão sobre Automação de Testes com CasperJS
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Curso de Ruby on Rails - Aula 04
Curso de Ruby on Rails - Aula 04Curso de Ruby on Rails - Aula 04
Curso de Ruby on Rails - Aula 04
 
Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como Programar
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
 
Web App Flaws - SQL Injection
Web App Flaws - SQL InjectionWeb App Flaws - SQL Injection
Web App Flaws - SQL Injection
 
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
 

Novidades do Django 1.2

  • 1.
  • 2. Novidades do Django 1.2¶ • Suporte a mútiplos bancos de dados • Validação de models • Framework de mensagens • Proteção contra CSRF • Mudanças no contrib.auth • Templatetag ‘if’ mais esperta • Mudanças no admin • E mais ...
  • 3. Múltiplos bancos de dados¶ • Escalabilidade • Integração com outras aplicações • Não é possível manter modelos relacionados (através de ForeignKey ou many-to-many) em bancos diferentes
  • 4. Múltiplos bancos de dados¶ DATABASES = { 'default': { 'NAME': 'app_data', 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'USER': 'postgres_user', 'PASSWORD': 's3krit' }, 'users': { 'NAME': 'user_data', 'ENGINE': 'django.db.backends.mysql', 'USER': 'mysql_user', 'PASSWORD': 'priv4te' } }
  • 5. Múltiplos bancos de dados¶ QuerySet.using() >>> User.objects.using('users').all() Model.save(using='db') >>> user = User(username='flavioamieiro') >>> user.save(using='users') Database routers Classes que definem quatro métodos: • db_for_read • db_for_write • allow_relation • allow_syncdb
  • 6. Validação de models¶ • Validação de campos específicos • Validação de todo o model • Validação de unicidade de um campo • Usado pelo ModelForm • Não é chamado automaticamente por Model.save()
  • 7. Framework de mensagens¶ • Mensagens baseadas em cookies ou em sessões • Diferentes níveis de mensagens • É possível enviar mensagens para usuários não autenticados
  • 8. Proteção contra CSRF¶ from django.views.decorators.csrf import csrf_protect @csrf_protect def my_view(request): # ... pass <form action="." method="post"> {% csrf_token %} <input type="text"> </form>
  • 9. Framework de mensagens¶ from django.contrib import messages def view(request): messages.success(request, 'Inscreva-se na pythoncampus') # ... # template.html {% if messages %} <ul class="messages"> {% for message in messages %} <li>{{ message }}</li> {% endfor %} </ul> {% endif %}
  • 10. Mudanças no contrib.auth¶ • Permissões por objeto • Permissão para usuários anônimos • Nomes de usuários aceitam mais caracteres
  • 11. Templatetag ‘if’ mais esperta¶ # Django 1.1 {% ifnotequal a b %} ... {% endifnotequal %} # Django 1.2 {% if a != b %} ... {% endif %} operadores suportados: ==, !=, <, >, <=, >=, in, not in
  • 12. Mudanças no admin¶ • Jquery • Campos somente leitura
  • 13. E mais ...¶ • Backends de e-mail • Cache de templates • Fixtures com ‘Natural keys’ • Fail Fast para testes • BigIntegerField • Melhorias na localização • Realce de sintaxe nos comandos do django-admin • Feeds podem ser usados diretos como views
  • 14. Saiba Mais¶ • http://docs.djangoproject.com/en/dev/releases/1.2/ • http://djangoadvent.com/ • http://www.github.com/django/django