Después de realizar todas las instalaciones básicas en la anterior entrega del tutorial Python en la web con Django, vamos a crear nuestro primer proyecto web. Estudiaremos un poco la estructura que se genera al crear un proyecto con Django y cómo arrancar nuestro servidor.
Creando el proyecto con django-admin
Primero tendremos que crear nuestro proyecto. Para ser ordenados crearemos antes un directorio y nos desplazaremos a él para comenzar. Después con la herramienta django-admin creamos el proyecto:
Código :
alberto@a-AMILO-Si-3655:~$ mkdir django alberto@a-AMILO-Si-3655:~$ cd django alberto@a-AMILO-Si-3655:~/django$ django-admin startproject tutorial
Después de la instalación que hicimos de Django, deberíais tener el comando django-admin en el PATH del sistema. ¿Qué quiere decir eso? Que tendremos el comando en el directorio /usr/local/bin. En el caso de que no lo tengais en esta ruta, el comando anterior devolverá error por lo que tendremos que hacer un link simbólico. Si alguien tiene este problema que comente y le ayudaremos.
Vamos a ver qué es lo que ha hecho la herramienta django-admin:
Código :
alberto@a-AMILO-Si-3655:~/django$ ls -tlr tutorial total 16 -rw-r--r-- 1 alberto alberto 0 2012-02-01 13:15 __init__.py -rw-r--r-- 1 alberto alberto 571 2012-02-01 13:15 urls.py -rw-r--r-- 1 alberto alberto 503 2012-02-01 13:15 manage.py -rw-r--r-- 1 alberto alberto 5035 2012-02-01 13:15 settings.py
Expliquemos qué significa todo esto:
- __init__.py : archivo que le indica a python que este directorio es un paquete python de, por ejemplo, grupo de módulos.
- settings.py : contiene toda la configuracion de nuestro proyecto.
- manage.py : contiene todas los comandos disponibles para poder trabajar con nuestro proyecto(incluso por shell).
- urls.py : contiene la declaracion de las urls posibles para nuestro proyecto. Es una tabla de contenidos.
Aunque ahora no os quede muy claro para qué sirve cada fichero, no os preocupéis que pronto lo entenderéis.
Iniciando Django
Vamos a arrancar nuestro servidor para confirmar que está trabajando correctamente. Para ello entramos en el directorio de nuestro proyecto y ejecutamos lo siguiente:
Código :
alberto@a-AMILO-Si-3655:~/django$ cd tutorial alberto@a-AMILO-Si-3655:~/django/tutorial$ python manage.py runserver Validating models... 0 errors found Django version 1.3.1, using settings 'tutorial.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
Veamos la salida que nos ha devuelto:
- Validating models : el servidor valida que el modelo de datos sea correcto. Nosotros no tenemos, al menos de momento, así que sin errores.
- 0 errors found : errores de sintáxis encontrados. Si tenemos errores sin poner código me tiro por la ventana.
- Django version 1.3.1, using settings 'tutorial.settings' : versión de django que usamos y el fichero de configuracion que utiliza en el arranque. Vemos que el patrón que sigue es "nombre_proyecto.fichero".
- Development server is running at http://127.0.0.1:8000/ : nos indica que el servidor está corriendo en la dirección que se ve, por defecto escucha en el puerto 8000.
- Quit the server with CONTROL-C : para detener nuestro servidor basta con pulsar CONTROL+C o cerrar la ventana de la terminal.
He de advertir que Django no es un servidor recomendable para un entorno de producción, incluso al arrancar te indica que es de desarrollo. Django no está preparado para grandes cargas de trabajo por lo que para tu web recomiendo usar uno con mayor capacidad como por ejemplo Apache. Un día reservaré un tutorial para migrar el proyecto a apache con mod_python.
Bueno para ver que tal nos está quedando basta con ir al navegador y pedirle la url http://127.0.0.1:8000/ Veremos algo como esto:
Esta es la pantalla DEBUG de Django. Ahora mismo no tenemos nada y por defecto se muestra esta ventana apastelada. Por simple curiosidad fijaros en lo que dice la ultima línea...os doy una pista:
Código :
alberto@a-AMILO-Si-3655:~/django/tutorial$ grep DEBUG settings.py DEBUG = True TEMPLATE_DEBUG = DEBUG
Mas adelante veremos mas opciones de esta ventana y como deshabilitarla (poco recomendable en desarrollo) si no nos gusta.
Si volvemos al terminal donde arrancamos el servidor podemos ver una linea mas:
Código :
[01/Feb/2012 06:53:59] "GET / HTTP/1.1" 200 2055
Este es el registro de acceso a nuestro servidor, en este caso por nosotros mismos, y el resultado con el que ha terminado la peticion ademas del tiempo empleado.
Iniciando Django para escuchar en otra dirección
Una de las posiblidades que nos da también la opción "runserver" es decirle a django en que dirección y puerto debe quedarse escuchando:
Código :
alberto@a-AMILO-Si-3655:~/django/tutorial$ python manage.py runserver 9000 Validating models... 0 errors found Django version 1.3.1, using settings 'tutorial.settings' Development server is running at http://127.0.0.1:9000/ Quit the server with CONTROL-C.
Código :
alberto@a-AMILO-Si-3655:~/django/tutorial$ python manage.py runserver 0.0.0.0:12000 Validating models... 0 errors found Django version 1.3.1, using settings 'tutorial.settings' Development server is running at http://0.0.0.0:12000/ Quit the server with CONTROL-C.
Tenemos todo instalado, tenemos creado nuestro proyecto y tenemos iniciado el servidor correctamente, ¿alguien tiene ganas de programar? En el próximo capítulo codearemos nuestro primer "Hola mundo" y estudiaremos el mapeo de urls.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Inyaka el 01 de Febrero de 2012
Por ach4m0 el 01 de Febrero de 2012
Por Kinduff el 01 de Febrero de 2012
Por DiegoVelevu el 06 de Febrero de 2012
Una lástima que no pueda ser usado en casos concretos -expuestos a un flujo mínimo
de usuarios-; con tal restricción no podría vender ningún proyecto en Django-Python ->
no lo puedo comercializar -> no lo usaría.
Por gijagu el 08 de Febrero de 2012
sudo apt-get install python-django
en la terminal te da esta opción de instalación en caso de no tener el comando admin, ami me funcionó
Por ach4m0 el 08 de Febrero de 2012
Por rogerfor el 10 de Febrero de 2012
Por ach4m0 el 10 de Febrero de 2012
Por @calujord el 23 de Marzo de 2012
Por ebuzz el 13 de Agosto de 2012
Por GuidoPy el 23 de Agosto de 2012
una emocion! usando xp, python 2.7. django 1.4.1, me costo hasta que logre poner el path, etc
ahora si preparado para programar codigo pitonico!