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

Python-Django

 Python-Django

Seminario de introducción a Python/Django.

Esteban Dorado Roldan

December 11, 2013
Tweet

More Decks by Esteban Dorado Roldan

Other Decks in Programming

Transcript

  1. Python/Django Python • Es un lenguaje de script de open

    source y multiplataforma y lenguaje de programación multiparadigma • El Zen de Python son los principios de la programación en Python • No necesitamos compilar los programas • Para usar el intérprete escribimos $ python (en la terminal) y aparece un promt >>> para introducir comandos • Los archivos python tienen una extensión .py • Para ejecutar los scripts se hace $ python mi_script.py • Al ejecutar los scripts se traducen a código máquina intermedio generando archivos .pyc o .pyo GDGGranada import this
  2. Python/Django Tipos de datos comunes • string (con soporte a

    Unicode) • int • float • long • complex • bool • file GDGGranada
  3. Python/Django Condicionales Ejemplos: senorRoca.py • Pueden usarse estructuras de negación

    (not) y comparacion (and y or) Ejemplos: senorRoca.py (rocaMalvada) GDGGranada
  4. Python/Django Listas, Tuplas y Diccionarios • Listas • Tuplas →

    Inmutables • Diccionario → Clave-valor Ejemplos: RAE.py GDGGranada
  5. Python/Django Aprende Python • Tutorial python.org http://docs.python.org/2/tutorial/ (Python 2) http://docs.python.org/3/tutorial/

    (Python 3) • Python para todos http://mundogeek.net/tutorial- python/ • Reuniones Python-Madrid http://python-madrid. es/ GDGGranada
  6. Python/Django Conociendo Django • Se originó en un ambiente periodístico

    ◦ Los desarrolladores deben de ir al mismo ritmo que los periodistas • Código “mantenible” por pocos desarrolles ◦ Lenguaje dinámico ◦ Código reusable en varios sitios GDGGranada
  7. Python/Django ¿Qué es Django? • Django es un framework web

    de alto nivel escrito en Python que fomenta el desarrollo rápido y limpio y el diseño pragmático. • Principio DRY: “Don’t Repeat Yourself” GDGGranada
  8. Python/Django ¿Qué hace Django? • Usa el patrón MTV •

    Desarrollo rápido y limpio • Mapea objetos python con la base de datos (ORM) • Servidor local de desarrollo • Permite diseñar URLs elegantes • Sistema de plantillas sencillo para diseñadores • Puede gestionar formularios, sesiones de usuarios, sitemaps, autenticación, caché, internalización, etc. GDGGranada
  9. Python/Django Organización de un proyecto • Un desarrollo es un

    proyecto • Un proyecto consta de una o varias aplicaciones • Cada aplicación hace algo en concreto • Proyecto: “comunidad web” aplicaciones: blog, foro, registro de usuarios, tienda online, etc • Una aplicación puede ser utilizada por distintos proyectos a la vez • Un proyecto puede hacer funcionar varios sitios web GDGGranada
  10. Python/Django Patrón MTV Una adaptación del patrón MVC • Model

    -> Modelos de datos (models.py) • View -> Vistas de datos (views.py) • Template -> Plantillas de páginas (HTML generalmente) GDGGranada
  11. Python/Django ¿Qué es eso? GDGGranada • http://www.amazon.com/Google-Chromecast- Streaming-Media- Player/dp/B00DR0PDNE/ref=sr_1_1? ie=UTF8&qid=1384763651&sr=8-

    1&keywords=chromecast • http://www.amazon.com/Google-Nexus- Unlocked-Android- KitKat/dp/B00GD9R79O/ref=sr_1_4? ie=UTF8&qid=1384763668&sr=8- 4&keywords=nexus+5
  12. Python/Django Hacemos magia GDGGranada • Crear un proyecto $ django-admin.py

    startproject mysite • Ejecutar servidor de desarrollo $ python manage.py runserver • Abrimos http://127.0.0.1:8000
  13. Python/Django Estructura de una app GDGGranada • Crear una app

    $ python manage.py startapp app1 • Contenido de una app
  14. Python/Django Magia con el SQL GDGGranada • Magia con el

    SQL $ python manage.py validate $ python manage.py sql app1 $ python manage.py syncdb Django soporta MySQL, PostgreSQL, SQLite3, Oracle, MariaDB, MongoDB.
  15. Python/Django ORM de Django • ORM: Mapeador de objetos relacional

    • Nos permite consultar la base de datos de forma sencilla a través de nuestros modelos en Python • Es sencillo y potente • Permite ejecutar código SQL directamente para operaciones especialmente complejas • Django permite utilizar otro ORM distinto como SQLAlchemy GDGGranada
  16. Python/Django Lenguaje de Plantillas • Es sencillo, orientado a diseñadores

    que no saben programar • Hay herencia • Se definen bloques (blocks) que pueden rellenar plantillas hijas GDGGranada
  17. Python/Django ¿Qué contiene Django? • ORM: Mapeador de objetos relacional

    • Lenguaje de plantillas • Django Administración GDGGranada
  18. Python/Django ¿Qué contiene Django? • ORM: Mapeador de objetos relacional

    • Lenguaje de plantillas • Sistema de administración automático • Framework de formularios GDGGranada
  19. Python/Django Framework de Formularios • Se definen con clases de

    Python (notación similar a los Models) • Formularios generados dinámicamente a partir de nuestros modelos • Validación en función del tipo de dato • Protección contra CSRF automática (Cross-site request forgery) • Se pueden crear form wizards, formularios por pasos • Se utilizan widgets para representar campos: input, textarea, etc. o widgets complejo con HTML y JavaScript GDGGranada
  20. Python/Django ¿Qué incluye Django? • ORM: Mapeador de objetos relacional

    • Lenguaje de plantillas • Sistema de administración automático • Framework de formularios • Otros componentes de Django GDGGranada
  21. Python/Django Otros componentes • Vistas genéricas: CRUD, listados de paginación,

    etc. • Autenticación y sesiones de usuario • Internalización y localización • Sistemas de caché (memcache, etc.) • Generación de sitemaps • Generación de feeds • JSON files GDGGranada
  22. Python/Django ¿Quién usa Django? • Google en Google App Engine

    (GAE) • NASA • New York Time • Washington Post • VMWare GDGGranada
  23. Python/Django Aprender Django • http://djangoproject.com • http://www.djangobook.com/ • http://djangosearch.com •

    http://djangosites.org • http://djangogigs.com • http://djangosnippets.org • http://django.es • https://people.djangoproject.com/ GDGGranada