Ir al contenido principal

Django I - Crear nuevo proyecto


Hacemos un resumen del tutorial oficial de Django recogiendo los principales pasos para comenzar con el framework. Para más detalle visitar la documentación oficial.

Asumimos que ya Django está instalado, si no, hay bastante documentación online de como hacerlo en los distintos sistemas operativos.

Versión:

Si el framework está instalado, podemos ver la versión con:
$ python -c "import django; print(django.get_version())"
de no estar instalado veremos un error "No module named django".


Comenzar un nuevo proyecto:

Desde la consola situarse en el directorio donde queremos almacenar el código de nuestro proyecto y ejecutar:
django-admin.py startproject mysite
El nuevo proyecto creado tendrá una estructura:
mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
dónde:
mysite/
La carpeta raíz del proyecto tendrá el mismo nombre que utilizamos a la hora de crearlo pero se puede cambiar, no afecta en nada el funcionamiento, es sólo el contenedor para alojar todo el código de nuestro trabajo.

mysite/manage.py
Una utilidad de línea de comandos para interactuar directamente con Django. Recomendado su estudio y más detalles.

mysite/mysite/
Es realmente el paquete para el proyecto. Con este nombre de paquete es que podremos importar cualquier cosa a nuestro proyecto (ejemplo: mysite.urls).

mysite/__init__.py
Fichero vacío que le avisa a Python que este directorio debe considerarse como un paquete.

mysite/settings.py
Aquí estará toda la configuración del proyecto. Durante el transcurso del tutorial se volverá sobre este fichero en varias ocasiones pero para un mejor estudio, se recomienda la lectura de Django settings.

mysite/urls.py
Lo describen como una 'tabla de contenidos', basicamente la declaración de las URL que contendrá nuestro proyecto. Más información sobre el trabajo con URLs

mysite/wsgi.py
Un punto de entrada para servidores web WSGI. Más detalles sobre como desplegar utilizando WSGI.

Servidor de pruebas:

Django incluye un servidor web bastante básico con el objetivo de agilizar el desarrollo pero no debe considerarse como una solución para un entorno de producción. Con el comando
$ python manage.py runserver
tenemos corriendo en http://127.0.0.1:8000 nuestro servidor de pruebas y ya podemos acceder a nuestro proyecto desde un navegador web. Si queremos correr el servidor en otro puerto o cambiar el IP desde el cual lanzamos el servidor, tan simple como
$ python manage.py runserver 0.0.0.0:8000
No es necesario reiniciar el servidor cada vez que se haga algún cambio en el proyecto, pues a cada petición que se haga, este se actualizará con los nuevos cambios que hayamos realizado.

Configuración de Base de Datos

Django por defecto viene configurado para utilizar SQLite, es la opción más simple y si no se domina el tema de bases de datos o no se hará un uso excesivo de ella, se puede dejar la configuración tal y como está. Por otra parte, Django posee una capa de abstracción que nos permite utilizar una amplia variedad de gestores de bases de datos. Si no vamos a utilizar SQLite tendremos que editar el fichero 'settings.py' y configurar la base de datos que vayamos a utilizar en nuestro proyecto.

  • ENGINE: agregamos el motor de base de datos que vayamos a utilizar, por ejemplo 'django.db.backends.postgresql_psycopg2', 'django.db.backends.mysql'... y otros más que también son posibles.
  • NAME: El nombre de la base de datos que utilizaremos. Debe ser creada antes de utilizarla.
Si no utilizamos SQLite, deberemos configurar además:
  • USER
  • PASSWORD
  • HOST
y como siempre, un enlace con más detalles y un ejemplo de como podría quedar la configuración:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}
En el mismo fichero de configuración aparecen las aplicaciones que trae por defecto Django:
Ahora, con algo tan simple como:
$ python manage.py syncdb
se generarán toda la estructura necesaria en la base de datos configurada en dependencia de las aplicaciones que estén habilitadas en nuestro proyecto.


Siguiendo el mismo orden de la documentación oficial, en la próxima entrada veremos como crear 'modelos' de datos con Django.





Comentarios

Entradas populares de este blog

Interfaz HTTP para VLC

VLC es un genial reproductor de video (y audio) libre y que cualquiera puede descargar desde aquí . Pero lo que no todos conocen son las facilidades de VLC como servidor de medias y transcodificador.  Es posible crear canales, grupos de canales, horarios de transmisión, recodificar un fichero (o un streaming) en tiempo real y muchas cosas más. Lo mejor es lo flexible que es y la cantidad de opciones disponibles tanto en modo gráfico, como en por comandos. Pero no todo es color de rosas, porque las interfaz no es muy amigable y a veces la documentación resulta no muy 'tragable' para usuarios comunes que no tengan muchos conocimientos sobre los servidores de media, los protocolos que se utilizan, compresión y hasta conceptos generales de televisión, video y audio. VLC me resuelve muchos problemas, pero he tenido que irme abriendo paso con él poco a poco, y aún me queda mucho por recorrer; por eso decidí ir documentando lo que voy aprendiendo, primero para compartirlo para que otr

ffmpeg: videos para web (mp4, ogg)

Después de algunas pruebas de compresión con ffmpeg para webs, esta es la combinación que mejor resultado me ha dado: $ ffmpeg -i v_original.mp4 -c:v theora -c:a libvorbis -b:v 1,5M -b:a 192k -vf scale=-1:720 v_final.ogg $ ffmpeg -i v_original.mp4 -b:v 1.5M -b:a 192k -vf scale=-1:720 v_final.mp4 El video será utilizado como background de algunas páginas. En un principio pensé en fullHD, pero para mantener una calidad decente era necesario aumentar el bitrate de manera considerable, aumentando por supuesto el tamaño del archivo. Así que se decidió disminuir la resolución a 720p y mantener un balance entre calidad y bitrate que se considera adecuado para el uso que tendrá el material.

Apache, actualizando a OS X 10.9 Maverick

Algunos pequeños cambios respecto a Apache notamos cuando actualizas el sistema a OS X Maverick. Primero, ya no tenemos la opción de Web Sharing en la interfaz de configuración, así que hay que meterle mano al Terminal. Para arrancar Apache: sudo apachectl start para detenerlo: sudo apachectl stop para reiniciar: sudo apachectl restart  Una vez arrancado podemos abrir un explorador con http://127.0.0.1 y veremos que el servicio está corriendo, pero tendremos otra sorpresa. El servidor tiene el documento raíz en /Library/WebServer/Documents y posiblemente nosotros lo teníamos antes en ~/Sites así que tendremos que configurar nuestro fichero httpd.conf para apuntar al directorio que contendrá nuestros proyectos: sudo nano /private/etc/apache2/httpd.conf  Ya que estamos editando el fichero de configuración, es recomendable además, activar PHP descomentando la línea del módulo PHP5_module. Una vez ajustado a tus necesidades, recuerda reiniciar el servicio para que los c