Entradas

Python – Virtualenv & PIP

VIRTUALENV

  • instalar:  pip install virtualenv
  • crear entorno: virtualenv “myEnvironment”
  • activar entorno: source myEnvironment/bin/activate
  • desactivar entorno: deactivate

PIP

  • Instalar: pip install -r requirements.txt o nombre_paquete
  • Desinstalar: pip uninstall nombre_paquete
  • Actualizar paquete: pip install nombre_paquete –upgrade
  • Ver dependencias del entorno: pip freeze —local

Django – comandos manage.py

Crear proyecto: django-admin.py startproject pruebaDjango
Iniciar servidor: python manage.py runserver
Iniciar Shell: python manage.py shell
Añadir app: python manage.py startapp myApp
Añadir migración: python manage.py makemigrations
Aplicar migraciones: python manage.py migrate

Django – Modelo, consultas y migraciones

MODELOS

Declaración

Hay que añadir la app a settings.py y luego generar las migraciones

Tipos de campos

Charfield(), Textfield(), EmailField() -> max_lenght
IntegerField(), IntegerField(), BingIntegerField, PositiveIntegerField()BooleanField(),
DecimalField() -> max_digits=5, decimal_places=2
DateField(), DateTimeField(), TimeField() -> auto_now = true o false (se usa para modificar); auto_now_add (crear)
FileField(), ImageField() -> upload_to (dnd se define el path dnd se almacenarán los archivos)

Relaciones

OneToOneField() -> uno a uno:

ForeignKey() -> Uno a muchos

class Entry(models.Model):
author = models.ForeignKey(Author)
content = models.TextField()

ManyToManyField() -> Muchos a muchos

Instancia

Debemos importar el modelo (from myapp.models import *). Podemos instanciar el modelo de tres formas diferentes
1.

2.

QUERIES

Consultas básicas

Consulta a un objeto con relación uno muchos

Ordenación

MIGRACIONES en Django

Generar una migración por primera vez

1. Creamos la app:

2. Editamos el modelo: myapp/models.py
3. Añadimos la app en el settings.py, dentro de installed_apps.
4. Generamos el fichero migración del modelo creado: python manage.py makemigrations
5. Aplicamos las migraciones y genera la base de datos: python manage.py migrate

Restaurar una migracion

1. Listamos las migraciones: python manage.py migrate myapp -l
2. Seleccionamos la migración: python manage.py migrate myapp 0002
3. Eliminamos el fichero de migración: rm myapp/migrations/migracion

Django – Urls, vistas y templates

URLs

Tenemos un fichero de urls global, es una buena práctica crear un fichero de urls por app. Para ello debemos añadir al “urlpatterns” del fichero principal la línea *url(r’^’, include(‘app.urls’), namespace=“app”)), *

VISTAS

Las vistas pueden ser una función o una clase, que se reciben una petición y devuelven una respuesta (html, redirección, error 404, …). Por convención el fichero se nombra como views.py. Desde django 1.7 además de devolver un HttpResponse puede devolver un JsonResponse.

Definición

views.py

urls.py

Shortcuts

Render: debe recibir dos parámetros obligatoriamente request y nombre del template, también se pueden agregar otros parámetros opcionales, como por ejemplo el contexto de datos en forma de diccionario.

Redirect: devuelve un httpResponseRedirect, envia una redirección a otra url. Ejemplo:

Vistas de error

Para editar la vista de errores debemos agregar al fichero de urls el handler, por ejemplo, para el error 404:

TEMPLATES

Permiten separar correctamente python de html. Debemos de agregar el directorio de templates dentro de cada app. Si queremos utilizar otra opción debemos añadir a nuestro settings.py la variable “TEMPLATE_DIR” -> TEMPLATE_DIRS = [os.path.join(BASE_DIR, ‘templates’)]

Elementos de las templates:

Variables:{{variable}}

Estructuras de control:{% if condición %}{% endif %}

Etiquetas:{%tag%}, {%tag%}{%endtag%}

Filtros: {{variable | filtro}}

Herencia:{% extends “base.html” %}

Tags