El objetivo de este repositorio es proponer una forma para hacer un proyecto Django abarcando el ciclo de vida completo. Es decir, desde cero hasta Producción.
- Modelos: Client, Device, MAC Addresses, Types (lookup) y Modelos abstractos base
- Navegación estandarizada
- Deploy to AWS
- Contribución (How to)
- Internacionalización y localización
- Model Validation & Form Validation
- Deploy to AWS
La propuesta de desarrollo es crecer en capítulos que se implementaran con branches de git con la nomenclatura DJ4Z2P-NNN-Inicio .... DJ4Z2P-NNN-Termino
- Django versión 4.2 LTS
- Python 3.8 (Python 3.8 es la versión mínima para Django 4.2)
- Ubuntu 18.04
- Visual Studio Code Versión 1.77.0
$ mkdir -p ~/Proyectos/d42_proj/src
$ cd ~/Proyectos/d42_proj
$ git clone https://github.com/mherreradsci/django42-tutorial-es.git ./src
$ cd ~/Proyectos/d42_proj
$ python3.8 -m venv ve_py38_django42
$ source ve_py38_django42/bin/activate
$ (ve_py38_django42)$ python --version
Python 3.8.0
# Para eliminar el venv (solo si deseas volver a crear el ambiente)
(ve_py38_django42)$ deactivate # Cierra el ambiente virtual
$ rm -rf ./ve_py38_django42 # Elimina el directorio completo, es decir, el ambiente virtual
# Actualiza la versión de pip
(ve_py38_django42)$ python -m pip install pip --upgrade
# Instalar requerimientos
(ve_py38_django42)$ cd ~/Proyectos/d42_proj/src
(ve_py38_django42)$ pip install -r requirements-dev.txt
$ cd ~/Proyectos/d42_proj
$ source ve_py38_django42/bin/activate(ve_py38_django42)$ cd ~/Proyectos/d42_proj/src
(ve_py38_django42)$ python manage.py migrate
- Debe reemplazar <<clave>> por su propia clave
(ve_py38_django42)$ echo "from accounts.models import User; User.objects.create_superuser('init', '', '<<clave>>')" | python manage.py shell
- Observación: También se puede crear en forma interactiva con la siguiente instrucción (email es opcional; el usuario de inicio se debe llamar init y puede haber más de un superusuario):
(ve_py38_django42)$ python manage.py createsuperuser
(ve_py38_django42)$ python manage.py loaddata init_mac_address_types.json
(ve_py38_django42)$ python manage.py loaddata init_customers.json
(ve_py38_django42)$ python manage.py loaddata init_devices.json
(ve_py38_django42)$ python manage.py loaddata init_mac_addresses.json
(ve_py38_django42)$ python manage.py runserver
<CTRL+C>
(ve_py38_django42)$ deactivate
