Primeros pasos con Django

Introducción:

Instalación:

Preparando el entorno de trabajo

* Instalar módulo para crear entornos virtuales en Python (3):

# apt install python3-venv

* Creamos una carpeta para crear nuestros proyectos Django.

$ mkdir django
$ cd django

* Creamos un entorno virtual para Python 3.8 (dependerá la versión que tengan instalada):

$ python3 -m venv venv3.8

* Activamos el entorno virtual;

$ source venv3.8/bin/activate

Para desactivarlo:

$ deactivate

* Utilizamos pip para gestionar los módulos en el entorno virtual:

$ pip list

Package       Version
------------- -------
pip           20.1.1
pkg-resources 0.0.0
setuptools    44.0.0

Django

* Instalamos Django (última versión por defecto), instalará también algunas dependencias:

$ pip install django

Collecting django
  Downloading Django-3.1.2-py3-none-any.whl (7.8 MB)
     |████████████████████████████████| 7.8 MB 1.5 MB/s
Collecting sqlparse>=0.2.2
  Using cached sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)
Collecting pytz
  Downloading pytz-2020.1-py2.py3-none-any.whl (510 kB)
     |████████████████████████████████| 510 kB 13.0 MB/s
Collecting asgiref~=3.2.10
  Using cached asgiref-3.2.10-py3-none-any.whl (19 kB)
Installing collected packages: sqlparse, pytz, asgiref, django
Successfully installed asgiref-3.2.10 django-3.1.2 pytz-2020.1 sqlparse-0.3.1

* Nos quedará la siguiente lista de módulos instalados:

$ pip list

Package       Version
------------- -------
asgiref       3.2.10
Django        3.1.2
pip           20.1.1
pkg-resources 0.0.0
pytz          2020.1
setuptools    44.0.0
sqlparse      0.3.1

* Si quisieramos instalar otro entorno virtual, ya sea en la misma máquina o en otra, podemos exportar la lista de módulos y sus versiones para recrear el entorno. Con la opción freeze de pip podemos obtener la lista y redirigir a un archivo, el que luego podemos utilizar para instalar los módulos en el nuevo entorno:

// guardar lista de módulos
$ pip freeze > requirements.txt

// instalar lista.
$ pip install -r requirements.txt

Proyecto1

Este ejemplo muestra el paso a paso (con Django ya instalado) la evolución de un primer proyecto.

Creación del proyecto

Al ubicarnos en la carpeta django para los proyectos antes creada tenemos hasta ahora:

$ ls -l
-rw-r--r-- 1 amvaldesj amvaldesj   59 Oct  6 09:35 requirements.txt
drwxr-xr-x 6 amvaldesj amvaldesj 4096 Oct  6 09:30 venv3.8

Creamos entonces en este nivel el proyecto que nombraremos proyecto1:

$ django-admin startproject proyecto1

Y la carpeta de trabajo nos queda:

$ ls -l
drwxr-xr-x 3 amvaldesj amvaldesj 4096 Oct  6 09:36 proyecto1
-rw-r--r-- 1 amvaldesj amvaldesj   59 Oct  6 09:35 requirements.txt
drwxr-xr-x 6 amvaldesj amvaldesj 4096 Oct  6 09:30 venv3.8

Ingresamos a la carpeta proyecto1 para trabajarlo:

$ cd proyecto1
$ ls -l
-rwxr-xr-x 1 amvaldesj amvaldesj  665 Oct  6 09:36 manage.py
drwxr-xr-x 2 amvaldesj amvaldesj 4096 Oct  6 09:36 proyecto1

Podemos probar como se ve hasta ahora ejecutando el script manager.py, el cual tiene múltiples opciones y una de ellas es levantar un servicio web local:

$ python manage.py runserver

Y abrimos en una navegador web la url http://127.0.0.1:8000/'

Uso de Base de Datos