Novidades do Django 1.2

565
-1

Published on

Slides da lighting talk apresentada na pythoncampus do LNCC no dia 22/05/2010

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
565
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Novidades do Django 1.2

  1. 1. 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 ...
  2. 2. 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
  3. 3. 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' } }
  4. 4. 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
  5. 5. 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()
  6. 6. 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
  7. 7. 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>
  8. 8. 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 %}
  9. 9. Mudanças no contrib.auth¶ • Permissões por objeto • Permissão para usuários anônimos • Nomes de usuários aceitam mais caracteres
  10. 10. Templatetag ‘if’ mais esperta¶ # Django 1.1 {% ifnotequal a b %} ... {% endifnotequal %} # Django 1.2 {% if a != b %} ... {% endif %} operadores suportados: ==, !=, <, >, <=, >=, in, not in
  11. 11. Mudanças no admin¶ • Jquery • Campos somente leitura
  12. 12. 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
  13. 13. Saiba Mais¶ • http://docs.djangoproject.com/en/dev/releases/1.2/ • http://djangoadvent.com/ • http://www.github.com/django/django
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×