El desplegament d'una aplicació Django és el procés de posar la teva aplicació en un servidor perquè estigui disponible per als usuaris finals. Aquest procés implica diverses etapes, des de la configuració del servidor fins a la gestió de bases de dades i la configuració de servidors web. En aquesta secció, aprendrem com desplegar una aplicació Django pas a pas.
- Preparació del Projecte per al Desplegament
1.1. Configuració de l'Entorn de Producció
Abans de desplegar la teva aplicació, és important assegurar-se que està configurada correctament per a l'entorn de producció. Això inclou ajustar les configuracions de seguretat i optimització.
Configuració del fitxer settings.py
-
DEBUG: Assegura't que
DEBUG
està establert aFalse
en producció.DEBUG = False
-
ALLOWED_HOSTS: Defineix els dominis o adreces IP que poden accedir a la teva aplicació.
ALLOWED_HOSTS = ['example.com', 'www.example.com']
-
Configuració de la Base de Dades: Utilitza una base de dades adequada per a producció, com PostgreSQL.
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', 'PORT': '5432', } }
-
Configuració de l'Static i Media Files: Assegura't que els fitxers estàtics i els fitxers de mitjans es gestionen correctament.
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
1.2. Instal·lació de Dependències
Crea un fitxer requirements.txt
amb totes les dependències del teu projecte.
- Configuració del Servidor
2.1. Elecció del Servidor
Hi ha diverses opcions per desplegar una aplicació Django, com ara:
- Heroku
- DigitalOcean
- AWS (Amazon Web Services)
- Google Cloud Platform
- Azure
En aquest exemple, utilitzarem DigitalOcean.
2.2. Configuració del Servidor a DigitalOcean
-
Crear un Droplet: Inicia sessió a DigitalOcean i crea un nou Droplet amb Ubuntu.
-
Accés al Servidor: Accedeix al teu servidor via SSH.
ssh root@your_server_ip
-
Actualització del Sistema: Actualitza el sistema operatiu.
apt update && apt upgrade -y
-
Instal·lació de Dependències: Instal·la les dependències necessàries.
apt install python3-pip python3-dev libpq-dev nginx curl -y
-
Configuració de PostgreSQL: Instal·la i configura PostgreSQL.
apt install postgresql postgresql-contrib -y sudo -u postgres psql CREATE DATABASE mydatabase; CREATE USER mydatabaseuser WITH PASSWORD 'mypassword'; ALTER ROLE mydatabaseuser SET client_encoding TO 'utf8'; ALTER ROLE mydatabaseuser SET default_transaction_isolation TO 'read committed'; ALTER ROLE mydatabaseuser SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE mydatabase TO mydatabaseuser; \q
- Desplegament de l'Aplicació
3.1. Clonació del Projecte
Clona el teu projecte des del repositori de Git.
3.2. Creació d'un Entorn Virtual
Crea i activa un entorn virtual.
3.3. Instal·lació de Dependències
Instal·la les dependències del projecte.
3.4. Migració de la Base de Dades
Executa les migracions de la base de dades.
3.5. Recopilació de Fitxers Estàtics
Recopila els fitxers estàtics.
- Configuració de Gunicorn i Nginx
4.1. Configuració de Gunicorn
Instal·la Gunicorn i crea un servei de systemd per gestionar-lo.
Crea un fitxer de servei per Gunicorn a /etc/systemd/system/gunicorn.service
.
[Unit] Description=gunicorn daemon After=network.target [Service] User=root Group=www-data WorkingDirectory=/path/to/your/project ExecStart=/path/to/your/project/venv/bin/gunicorn --workers 3 --bind unix:/path/to/your/project.sock projectname.wsgi:application [Install] WantedBy=multi-user.target
Inicia i habilita el servei de Gunicorn.
4.2. Configuració de Nginx
Configura Nginx per servir la teva aplicació Django. Crea un fitxer de configuració a /etc/nginx/sites-available/projectname
.
server { listen 80; server_name your_domain www.your_domain; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /path/to/your/project; } location / { include proxy_params; proxy_pass http://unix:/path/to/your/project.sock; } }
Activa la configuració i reinicia Nginx.
ln -s /etc/nginx/sites-available/projectname /etc/nginx/sites-enabled nginx -t systemctl restart nginx
- Conclusió
En aquesta secció, hem après com desplegar una aplicació Django en un servidor de producció. Hem cobert la configuració de l'entorn de producció, la instal·lació de dependències, la configuració del servidor, i la configuració de Gunicorn i Nginx. Amb aquests passos, la teva aplicació Django hauria d'estar disponible per als usuaris finals.
Resum
- Configuració de l'entorn de producció.
- Instal·lació de dependències i configuració del servidor.
- Desplegament de l'aplicació.
- Configuració de Gunicorn i Nginx.
Ara estàs preparat per desplegar aplicacions Django en un entorn de producció. En el següent tema, explorarem les millors pràctiques de seguretat per assegurar la teva aplicació Django.
Curs de Desenvolupament Web amb Django
Mòdul 1: Introducció a Django
- Què és Django?
- Configuració de l'Entorn de Desenvolupament
- Creació del teu Primer Projecte Django
- Comprensió de l'Estructura del Projecte Django
Mòdul 2: Conceptes Bàsics de Django
- Aplicacions Django i Estructura del Projecte
- Enrutament d'URL i Vistes
- Plantilles i Fitxers Estàtics
- Models i Bases de Dades
- Interfície d'Administració de Django
Mòdul 3: Django Intermedi
Mòdul 4: Django Avançat
- Consultes Avançades amb Django ORM
- Models d'Usuari Personalitzats
- Senyalitzacions de Django
- Proves en Django
- Optimització del Rendiment