Enlace Patrocinado
Django es hoy por hoy uno de los mejores frameworks de backend, es ligero rápido, y lo mas estable tiene un ORM del que simplemente te enamoras y en el ambiente laboral es de los mas solicitados hoy en día en este tutorial te explicare como crear tu primer proyecto en Django en ubuntu:
Requisitos:
lo primero que debemos instalar para trabajar en django es obviamente python pero como este ya viene instalado en el core de ubuntu podemos saltarnos este paso y irnos a la instalación de su gestor de paquete(Pip), para estro primero actualizaremos el índice de paquetes local antes de iniciar:
$sudo apt-get update
luego dependiendo de la version que tengamos de python instalaremos la correspondiente version de pip:
para python 2.x :
$python -V
Python 2.x.xx$sudo apt-get install python-pip
para python 3.x :
$python -V
Python 3.x.xx$sudo apt-get install python3-pip
Ahora crearemos nuestro virtualenv:
Virtualenv es una herramienta para crear entornos Python aislados. Virtualenv crea una carpeta que contiene todos los ejecutables necesarios para usar los paquetes que un proyecto de Python necesitaría.
para python 2.x :
$python -V
Python 2.x.xx$sudo pip install virtualenv
para python 3.x :
$python -V
Python 3.x.xx$sudo pip3 install virtualenv
creamos nuestro virtualenve en el directorio que nos parezca mas conveniente con el nombre que escogemos en este caso:
$virtualenv newenv
luego de esto observaremos que se ha creado una carpeta con el nombre newenv donde se alojaran todos los paquetes para hacer que nuestra App en django funcione. Mientras tengamos nuestro virtualenv activo cada dependencia de pip se instalara dentro de este directorio para activarlo debemos usar el siguiente comando:
$source newenv/bin/activate(newenv)$
podremos observar que luego de esto en nuestra terminal aparecerá entre parenthesis el nombre de nuestro virtualenv indicando que esta activo, en cuyo caso queramos desactivarlo el comando seria:
(newenv)$deactivate$
Ahora iniciaremos nuestra primera app:
Para crear nuestra primera App debemos primero activar nuestro virtualenv, y luego correr el siguiente comando:
$source newenv/bin/activate(newenv)$django-admin startproject localExample
ahora si quieren comprobar que han tenido una instalación exitosa de su App les recomiendo este incredible paquete que les servirá de mucho en el futuro:
(newenv)$sudo apt-get install tree(newenv)$tree localExample
localExample
├── localExample
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
└── manage.py1 directory, 10 files
tree es un paquete que les permitirá ver todo el árbol de directorios de una carpeta. ahora en teoría podríamos correr nuestro servidor, es mas intentemoslo:
(newenv)$cd localExample(newenv)~/localExample$python manage.py runserver
Performing system checks...System check identified no issues (0 silenced).You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.June 28, 2017 - 21:02:36
Django version 1.10.1, using settings 'localExample.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[28/Jun/2017 21:02:51] "GET / HTTP/1.1" 200 1767
si vamos a la dirección correspondiente http://127.0.0.1:8000/ podremos ver esto:
nuestra app esta corriendo en su nivel mas básico pero que paso los que somos mas intuitivos podremos habernos dado cuenta de esto:
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run ‘python manage.py migrate’ to apply them.
este “problema” es muy sencillo es django pidiéndonos correr el comando “python manage.py migrate” que nos indica que hay migraciones que nos hacen falta.
python manage.py migrate:
la documentacion oficial de dillango nos dice que:
Las migraciones son la forma de Django de propagar los cambios que realices en tus modelos (agregar un campo, eliminar un modelo, etc.) En el esquema de la base de datos.Están diseñados para ser en su mayoría automáticos, pero tendrá que saber cuándo realizar las migraciones, cuándo ejecutarlas y los problemas comunes que puede encontrar.
las migraciones son una especie de control de versiones de nuestra base de datos, estas por lo general se encuentran íntimamente relacionadas con nuestros modelos y son las que permiten atrevas de el comando “python manage.py migrate” se generen de forma automática nuestra bases de datos sin tener que entrar en gestores de bases de datos como phpMyAdmin.
regresando a nuestra terminal:
(newenv)~/localExample$python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying sessions.0001_initial... OK(newenv)~/localExample$tree .
.
├── db.sqlite3
├── localExample
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
└── manage.py1 directory, 10 files
ahora podremos observar que se a creado un archivo llamado db.sqlite3 que es nuestra base de datos, .sqlite3 es el motor de base de datos por defecto de django mas adelantes podremos modificar lo pero para propósitos de este tutorial se dejara así.
ahora que, ho! cierto el admin:
una de las características mas potentes y envidiables de django es su admin que se auto genera y el cual nos permite un absoluto control sobre toda nuestra base de datos desde nuestra aplicación para entrar en este lo primero que debemos hacer es crearnos nuestro “super user”:
(newenv)~/localExample$python manage.py createsuperuser
Username (leave blank to use 'xxxxx'): xxxxx
Email address: xxxxx@xxxxx.com
Password:
Password (again):
Superuser created successfully.(newenv)~/localExample$python manage.py runserver
python manage.py runserver
Performing system checks...System check identified no issues (0 silenced).
June 28, 2017 - 21:45:16
Django version 1.10.1, using settings 'localExample.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ahora podemos observar que 2 cambios importantes, primero que ya no aparece el aviso de django que nos pide correr el comando “python manage.py migrate” y el segundo cambio importante lo observaremos al entrar en la url “http://127.0.0.1:8000/admi” en la que deberemos logearnos con los mismos datos que colocamos al correr el comando “python manage.py createsuperuser”
listo ya podemos decir que tenemos instalada nuestra primera app en django. espero poder hacer mas tutorials con el apoyo de todos los lectores en la próxima lección se les serán aclaradas mas dudas y pretendo llegar mas afondo en el uso del admin espero todos sus follows.