Archivos y carpetas
Esta es la estructura del proyecto de django nada más crearlo.
Archivo manage.py
El archivo manage.py
nos ayuda a ejecutar comandos administrativos. Por ejemplo, podemos ejecutar un help.
python manage.py --help
Archivo db.sqlite3
Es la base de datos de nuestra aplicación. sqlite3 es una base de datos de tipo SQL.
Es una base de datos simple que se usa habitualmente para pruebas, pero no para desarrollo.
django oficialmente soporta las siguientes bases de datos:
- PostgreSQL
- MariaDB
- MySQL
- Oracle
- SQLite
Carpeta mysite
Contiene el código fuente de nuestra aplicación.
Archivo __pycache__
Este archivo solo sirve para guardar código que ya compiló Python
Archivo __init__py©
Este archivo es imprescindible que exista aunque esté vacío.
Este archivo solo sirve para decirle a Python que la carpeta mysite es un módulo de python.
Este archivo está más relacionado con el funcionamiento de Python que con el de Django.
Archivo settings.py
Este archivo permite configurar nuestro proyecto.
Este archivo solo sirve para decirle a Python que la carpeta mysite es un módulo de python.
Veamos algún ejemplo de instrucciones de configuración.
Variable ALLOWED_HOSTS = []
Le indica al servidor qué direcciones tiene permitido consultar.
Propiedad DEBUG = True
Le indica si estamos en modo desarrollo o en modo producción.
Cuando esté como DEBUG = True
nos permite obtener más información cuando estemos desarrollando.
Propiedad SECRET_KEY
Permite mejorar la encriptación de los usuarios o permite mejorar la seguridad de los datos compartidos entre el navegador y el servidor.
Contiene valores generados aleatoriamente.
SECRET_KEY = 'django-insecure-xe-ryt5i.../...87cek$'
Variable BASE_DIR = Path(__file__).resolve().parent.parent
Indica los directorios que contiene el proyecto.
Contiene valores generados aleatoriamente.
Variable INSTALLED_APPS
Es una variable en forma de lista que contiene las aplicaciones que contiene nuestro proyecto.
django permite dividir un proyecto en diferentes partes que aquí se llaman aplicaciones.
La lista contiene las aplicaciones que se instalan por defecto.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Variable MIDDLEWARE
Es una variable en forma de lista que indica a Django si va a procesar algún tipo de datos de alguna forma específica.
Esta es la lista que se ha instalado inicialmente.
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
Variable TEMPLATES
Aquí podremos establecer nuestros Templates.
Variable WSGI_APPLICATION
Aquí podremos indicar módulos extra cuando estemos en modo de producción.
WSGI_APPLICATION = 'mysite.wsgi.application'
Variable DATABASES
Es una variable en forma de diccionario que contiene las bases de datos a las que está conectado nuestro proyecto.
Por defecto la base de datos es SQLITE3.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
Variable AUTH_PASSWORD_VALIDATORS
Es una variable en forma de lista que contiene las formas de validar contraseñas al autenticar usuarios.
Por defecto la base de datos es SQLITE3.
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
Variable STATIC_URL
Aquí podremos establecer en que directorio se encuentran los archivos estáticos, por defecto se establece que esta carpeta será 'static'.
La carpeta 'static' no viene creada por defecto, pero lo habitual es que nosotros la creemos y en ella guardemos los llamados archivos estáticos.
El contenido estático es cualquier archivo que se almacena en un servidor y es el mismo cada vez que se entrega a los usuarios. Se consideran estáticos los archivos HTML, CSS, JS, las imágenes, mp3, mp4, ico y otros elementos que no cambian dinámicamente en función de las interacciones del usuario..
STATIC_URL = 'static/'
Archivo urls.py
Aquí se indican las URLs que los clientes pueden visitar.
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]code>
Por defecto, solo viene la ruta "admin/' pero posteriormente iremos añadiendo otras.
Archivos asgi.py
y wsgi.py
Estos archivos están más relacionados con la forma de servir nuestro proyecto en producción.
django se ocupa de crear el proyecto pero no del despliegue, para lo cual tendremos que tocar estos archivos.
No hay comentarios:
Publicar un comentario