sábado, 7 de enero de 2023

Creación de un entorno virtual Python y de un proyecto Django

Comenzamos instalando Django en un entorno virtual de Python, y luego lo utilizaremos para crear nuestro primer sitio web hola mundo. 

Creación de un entorno virtual Python

Antes de comenzar debemos crear un entorno virtual de phython. Para ello abrimos el Shell de Windows con Cmd o símbolo del sistema. (desde el Shell de Anaconda también funciona pero no me activa el entorno, pero sí con el Shell de Windows)

Símbolo del sistema


Para comenzar, crearemos un directorio de espacio de trabajo en nuestro sistema de archivos. En mi caso, tengo un directorio llamado JOSE_PEDRO, crearé sobre este otro llamado DJANGO  y para este proyecto de hola mundo crearé otro directorio llamado Proyecto1.
Podemos ver la versión Python poniendo 

python --version

Y en mi caso, tengo instalada la versión 3.7.6. Si se utiliza una versión de Python más antigua, es posible que nuestra aplicación se comporte de forma un poco diferente. Por lo tanto, se recomienda que tengamos al menos la versión 3.7 o superior.
Un entorno virtual permite crear un entorno de Python aislado donde podemos tener una versión específica de Python y un conjunto de paquetes de Python que son completamente independientes de otros entornos de Python en el sistema, ya sea real o virtual
Los entornos virtuales le permiten ejecutar diferentes aplicaciones en el mismo sistema, cada una de las cuales tiene un conjunto diferente de dependencias en los paquetes de Python y la versión del propio intérprete de Python. Así que ahora ejecutamos, pip install virtualenv, para instalar esta herramienta. 

instalacíon de virtualenv de Python


Con virtualenv podemos tener entornos Python de configuración y ejecución independientes, de manera que la configuración y librerías de uno no entren en conflicto con los de otro.

Creando un entorno virtual con virtualenv

Para crear un entorno virtual con virtualenv nos situaremos en el directorio raíz de nuestro proyecto y ejecutaremos el siguiente comando:

$> virtualenv  mi_entorno

Es dentro de este entorno virtual donde instalaremos el framework Django. Y esto no afectará a ninguno de los otros entornos Python de nuestro sistema.  

Creación de un entorno virtual Django


Esto creará el directorio ent_django  el cual contiene las carpetas 
Lib
Scripts
pyenv.cfg
Desde la carpeta Scripts de nuestro entorno virtual ponemos actívate, y activa nuestro entorno. Lo podemos ver porque ahora en vez de base pone ent_django (recuadrado en verde).

Activar un entorno virtual Python


Esto confirma que el entorno virtual djangoenv ahora está activo. Ahora que tenemos un entorno virtual para Django, lo utilizaremos instalando el paquete Django Python.
Regresamos a la raíz desde nuestro entorno virtual. Escribimos pip install Django para instalar Django en nuestro entorno de Django.
Esta vez tuve que hacerlo desde el Powershell de Anaconda porque desde el Powershell de Windows me daba error (en fin la informática es así) si algún paso falla, probar con el Powershell alternativo, Anaconda o Windows. Tener en cuenta que si necesitamos el  entorno activado tenemos que mirar si pone base o nuestro entorno virtual (recuadrado en verde en la figura anterior)

Shell de Anaconda


Dado que hemos instalando Django dentro de un entorno virtual, será completamente independiente de cualquier otro entorno que tengamos en nuestro sistema. Django solo estará disponible en este entorno. Podemos confirmar la versión de Django que se ha instalado.
python -m django --versión


Versión de Django


En nuestro caso, es la versión 3.0.8, Si deseamos una versión específica, podemos instalarla con pip install django == 2.9  donde 2.9 sería la versión deseada.
pip install django –upgrade nos instalará la última versión disponible

Crear un Proyecto Django

Ya tenemos Django instalado dentro de un entorno virtual en nuestro sistema,  echaremos un vistazo a la utilidad de administración de Django. 
django-admin 
Nos saca un listado de comandos de Django

Comandos de Django Admin

Hacia la parte inferior, podemos ver que hay comandos como startapp y startproject. Y otros, como runserver, que se requieren para iniciar el servidor de desarrollo Django. Para que podamos probar nuestro código dentro de nuestra propia máquina, deberemos abrir este servidor de desarrollo para abrir nuestra aplicación web y asegurarnos de que los cambios realizados en nuestro código se reflejan en la aplicación.
En Django, un proyecto tiene un significado distinto, donde podemos pensar en un proyecto como una agrupación de varias aplicaciones. Son todas las aplicaciones dentro de un proyecto las que se combinan para formar una aplicación web completa.
La terminología es un poco confusa, pero esto es algo a lo tendremos que acostumbrarnos para manejarnos en Django. Para crear un nuevo proyecto, podemos hacer uso de esta utilidad de administración de Django ejecutando el comando django-admin startproject, seguido del nombre del proyecto que deseamos crear. En mi caso voy a hacer una página web de horócopos, así que llamará a mi proyecto  horoscopo_personal.

Proyecto de Django


Vemos que se ha creado un nuevo directorio horoscopo_personal Vamos ver contenido de este directorio. Vemos que hay otro directorio llamado horoscopo_personal Es este directorio interno horoscopo_personal el paquete Python real para el proyecto Django.

Proyecto de Django


Justo al lado, observamos que hay un archivo llamado manage.py que también se ha generado. Es una aplicación que permite administrar nuestro proyecto Django. De hecho, es muy similar a la utilidad de administración de Django. Sin embargo, manage.py es específico para nuestro proyecto Django, mientras que django-admin es un poco más general. Utilizaremos manage.py para realizar varias tareas administrativas para este proyecto de Django.
Así que ahora vamos al directorio interno horoscopo_personal que se ha creado dentro de nuestro directorio horoscopo_personal y vemos su contenido.
Hay varios archivos .py diferentes. El primero de ellos, __ init__.py es inicialmente un archivo vacío, y le dice a Python que este directorio debe considerarse un paquete de Python.  A continuación, el archivo settings.py es el archivo de configuración para este proyecto de Django que acabamos de crear.
El archivo urls.py contiene todas las declaraciones de URL para este proyecto de Django. Y es el archivo que utilizaremos para asignar URL a vistas específicas dentro de nuestra aplicación Django. Y finalmente, el archivo wsgi.py sirve como punto de entrada para cualquier servidor web compatible con WSGI para que pueda servir este proyecto de Django. 
Esto es algo que entrará en juego cuando migremos nuestro proyecto Django a producción.
Regresemos ahora al directorio, de modo que estemos en el directorio raíz del proyecto Django que acabamos de crear.
Y en este punto, pasaremos del shell a un editor de texto o algún IDE de Python, si esa es la forma en que preferimos construir nuestra aplicación Python. En nuestro abriremos el navegador de anaconda y desde aquí lanzamos Spyder 

Navegador de Anaconda

Vamos a los archivos explicados anteriormente, si abrimos 
Vemos que __init__.py   está vacío así que abriremos settings.py que es el archivo de configuración o propiedades para este proyecto.

Editor de código Spyder


podemos echar un vistazo a las diferentes configuraciones que se han creado por defecto.
Por ejemplo, observaremos en la línea 23 que hay una propiedad SECRET_KEY. Y esta es la clave que será utilizada por nuestra aplicación Django para firmar mensajes. Este es un valor que se genera aleatoriamente para cada proyecto, por lo que veremos un valor diferente en cada configuración. Esto es algo que debe mantener en secreto cuando movamos nuestra aplicación a producción.
Si abrimos wsgi.py, veremos un servidor web habilitado para WSGI para servir a nuestra aplicación. Y esto entrará en juego cuando implementemos nuestra aplicación en producción. Finalmente, echamos un vistazo al archivo manage.py que se ha creado para el proyecto. 
Sin embargo, esto se aplica mucho a nuestro propio proyecto Django y nos permitirá realizar tareas, como crear aplicaciones dentro del proyecto, y también ejecutar el servidor de desarrollo para este proyecto. 

No hay comentarios:

Publicar un comentario