Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Taller de Django betabeers

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Betabeers Betabeers
October 19, 2011
220

Taller de Django betabeers

Avatar for Betabeers

Betabeers

October 19, 2011
Tweet

Transcript

  1. tests.py class BetabeersViewsTest(TestCase): fixtures = ['initial-data.json'] def setUp(self): self.client =

    Client() self.client.login(username="rebeca", password="rebeca") def test_login_200(self): context = { 'title': 'Betabeers Test note', 'text': 'I like beers more than beta', } response = self.client.post(reverse('post_note'), context) self.assertTrue(Note.objects.filter(title='Betabeers Test note').exists()) 03
  2. pip y PyPi PyPi (The Python Package Index): repositorio de

    software de Python https://github.com/pypa/pip: pip es el instalador pip install django • • • 05
  3. Virtual Environments (venvs) ¿Una forma fácil de instalarlo todo? curl

    -s https://raw.github.com/brainsik/virtualenv- burrito/master/virtualenv-burrito.sh | bash • • 07
  4. django-debug-toolbar (DjDT) https://github.com/django-debug-toolbar/django-debug-toolbar Barra de debugging de aplicaciones Muestra información

    de una página: contexto disponible, sentencias SQL ejecutadas... Dispone de un sistema de plugins • • • • 09
  5. 10

  6. Pinax Plataforma de desarrollo extremo de aplicaciones web. Numerosas Django

    apps reutilizables integradas y manejables fácilmente. • • 11
  7. django-extensions https://github.com/django-extensions/django-extensions Amplia la lista de comandos disponibles Ayuda: python

    manage.py graph_models --help $ ./manage.py graph_models -a -g -o my_project.png • • • • 12
  8. 13

  9. django-social-auth https://github.com/omab/django-social-auth Open Authentication login: Twitter, Facebook, Google... y muchos

    más La mejor alternativa. NO confundir con django-socialauth Muy configurable y customizable • • • • 15
  10. Plantilla <ul> <li><a href="{% url socialauth_begin 'facebook' %}">Facebook</a></li> <li><a href="{%

    url socialauth_begin 'twitter' %}">Twitter</a></li> <li><a href="{% url socialauth_begin 'google' %}">Google</a></li> </ul> 16
  11. django_compressor https://github.com/jezdez/django_compressor Django Compressor combina y comprime linked e inline

    Javascript o CSS en las plantillas de Django en ficheros estáticos cacheables. python manage.py compress • • • 17
  12. Plantilla {% load compress %} {% compress js %} <script

    src="/static/js/one.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" charset="utf-8">obj.value = "value";</script> {% endcompress %} Renderiza: <script type="text/javascript" src="/static/CACHE/js/3f33b9146e12.js" charset="utf-8"></script> 18
  13. 21

  14. class MyForm(forms.Form): form_field_1 = forms.CharField(...) def __init__(self, *arg, **kwargs): self.helper

    = FormHelper() self.helper.form_action = 'submit-survey' self.helper.layout = Layout( Div( 'form_field_2', 'form_field_3', ) ButtonHolder( Submit('save', 'Save', css_class='button white') ) ) super(MyForm, self).__init__(*args, **kwargs) 23
  15. django-floppyforms https://github.com/brutasse/django-floppyforms Remplaza los widgets de Django por HTML5 widgets.

    Widgets basados en plantillas. Añade widgets y algún campo nuevo. import floppyforms as forms • • • • • 25
  16. django-cache-machine https://github.com/jbalogh/django-cache-machine Cacheado/Invalidación autómatico de los modelos a través del

    ORM. Redefine el Django Memcached backend para cacheado infinito. Cuando un objeto cambia, es invalidado. Nuestros model managers deben heredar de CachingManager. • • • • • 26
  17. django-secure https://github.com/carljm/django-secure Cumprueba nuestros settings para evitar que hagamos cosas

    estupidas. python manage.py checksecure Middleware configurable que nos ayuda a mejorar la seguridad de nuestro site. • • • • 28
  18. django-devserver https://github.com/dcramer/django-devserver Reemplazo plug and play del servidor de desarrollo

    de Django. Incluye módulos para el profiling de consultas SQL, vistas, uso de memoria, etc. python manage.py runserver • • • • 29
  19. django-dajax https://github.com/jorgebastida/django-dajax http://dajaxproject.com/ Forma fácil y potente de utilizar AJAX

    en nuestro proyectos sin escribir casi nada de código JS Soporta jQuery, Dojo, Prototype y motools • • • • 30
  20. views.py from dajax.core.Dajax import Dajax def assign_test(request): dajax = Dajax()

    dajax.assign('#block01 li', 'innerHTML', 'Something else...') return dajax.json() Plantilla <div onclick="Dajaxice.app.assign_test(Dajax.process);">Click Here!</div> 31
  21. Haystack https://github.com/toastdriven/django-haystack http://toastdriven.com/ La mejor forma de añadir un motor

    de búsqueda a Django Arquitectura similar a los modelos ORM, pero orientado a búsqueda. Soporte de varios motores: Solr, Xapian, Whoosh Escribiendo SearchIndex en search_indexes.py • • • • • • 32
  22. search_indexes.py class NoteIndex(SearchIndex): text = CharField(document=True, use_template=True) author = CharField(model_attr='user')

    pub_date = DateTimeField(model_attr='pub_date') def index_queryset(self): """Used when the entire index for model is updated.""" return Note.objects.filter(pub_date__lte=datetime.datetime.now()) site.register(Note, NoteIndex) 33
  23. django-reversion https://github.com/etianen/django-reversion Extensión que añade funcionalidad de control de versiones

    a los modelos Recuperar modelos borrados Histórico de datos con capacidad de retroceso en el tiempo API a bajo nivel • • • • • 35
  24. South https://bitbucket.org/andrewgodwin/south/overview http://south.aeracode.org/ Migraciones de bases de datos relacionales sin

    volverse loco, de forma semiautomática Interesante opción para trabajo en equipo • • • • 36
  25. South ./manage.py schemamigration my_app --initial ./manage.py migrate my_app ./manage.py migrate

    schemamigration my_app --auto ./manage.py migrate my_app Metadatos en: tabla south_migrationhistory y directorio migrations • • • • • 37
  26. django-registration https://github.com/nathanborror/django-registration Fork del proyecto. Django app con probablemente record

    de forks. Sistema de registro de usuarios customizable en la aplicación Usar versión 0.8.0 alpha • • • • 38
  27. django-tastypie https://github.com/toastdriven/django-tastypie Genera deliciosas APIs para proyectos de Django. Mi

    favorita para hacer interfaces RESTful HTTP Tremendamente potente: autenticación, autorización, serializado, customizado... • • • • 39
  28. my_app/api.py from tastypie.resources import ModelResource from myapp.models import Entry class

    EntryResource(ModelResource): class Meta: queryset = Entry.objects.all() 40
  29. urls.py from myapp.api import EntryResource entry_resource = EntryResource() urlpatterns =

    patterns('', (r'^api/', include(entry_resource.urls)), ) 41