SISI: Simposium de Sistemas Computacionales del instituto Tecnológico de Mérida.
-
Crear repositorio en GitHub.
-
Clonar repositorio.
-
Crear entorno virtual.
$ python3 -m venv venv
-
Activar entorno virtual.
$ source venv/bin/activate
-
Instalar django
$ pip install django
-
Crear proyecto (dentro del entorno virtual).
$ django-admin startproject 'nombre proyecto'
-
Sacar el manage.py a la carpeta raíz sacar archivos de carpeta extra que se crea al dar startproject (mas fácil en explorador).
-
init.py con este archivo el sistema entiende que dentro de esas carpetas hay código que ejecutar.
-
asgi puente para ejecución que ejecuta y levanta el servidor.
-
settings.py configuración del proyecto, rutas de base de datos, idioma, dirección de imagenes etc.
-
urls.py para ejecutar codigo web todoo lo haces atraves de urls aqui se estructura como se va a ver.
-
wsgi.py funcionalidad de ejecución.
-
Crear funcion de python en urls para dar ejemplo de como se ejecuta en terminal, en django si se debe pasar parametro forzoso.
def saludo(self):
print('Hola mundo')
return True
- Crear carpeta applications a la altura del manage.py
poner archivo init.py dentro de la carpeta aplications
entrar a la carpeta y crear apps.
$ django-admin startapp 'nombre app'
- Ir al settings base.py y dar de alta las aplicaciones, modificar dentro del archivo apps.py de la aplicación el name apuntando a la carpeta.
$ pip freeze > requirements.txt
- Crear carpeta settings a la altura de inventarios.
- Colocar archivo init.py dentro dse la carpeta.
- Agregar 3 archivos que seran nuestros entornos: local.py, base.py, prod.py
- Poner en el archivo base.py todos los componentes de settings que usamos en local y prod.
- Importar dentro de local el archivo base.py:
from .base import *
- Cambiar nombre a settings.py original.
- Ejecutar variable de entorno local.py.
$ python manage.py runserver --settings=inventarios.settings.local
- En manage.py dice que entorno va a utilizar.
Instalar django rest framework, seguir documentación.
- crear archivo serializers.py
- Se crea serializer, view, url.
- Django 3.0+
- Django REST Framework - Powerful and flexible toolkit for building Web APIs.
- Django Cors Headers - A Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS).
- Django Filter - Simple way to filter down a queryset based on parameters a user provides.
- Simple JWT - A JSON Web Token authentication plugin for the Django REST Framework.
- Whitenoise - Radically simplified static file serving for Python web apps
- Procfile for running gunicorn with New Relic's Python agent.
- Support for automatic generation of OpenAPI schemas.
- Automated generation of real Swagger/OpenAPI 2.0 schemas from Django REST Framework code with drf-yasg.
- Python 3.7>
- Virtualenv
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
Application running in multiple environments like DEV and PROD. All env variables used in this application are available in .env.example
, feel free to setup your own environment configuration.
Just make a copy from .env.local.example
and/or rename to .env.local
and setup your variables. Then run in terminal:
$ source .env.local
The first time you run the application, make sure to apply the database migrations and create a super user account:
$ python manage.py migrate
$ python manage.py createsuperuser
Finally start development server:
$ python manage.py runserver
Just make a copy from .env.production.example
and/or rename to .env.production
and setup your variables. Then run in terminal:
$ source .env.production
The first time you run the application, make sure to apply the database migrations, create a super user account and generate static files:
$ python manage.py migrate
$ python manage.py createsuperuser
$ python manage.py collectstatic --no-input
Finally start production server:
$ gunicorn project.wsgi --log-level=INFO
$ python manage.py test