Un guide complet pour déployer votre application Django avec MySQL sur PythonAnywhere, étape par étape.

DjangoMySQLPythonAnywhere

Prérequis

  • Un compte PythonAnywhere actif
  • Un projet Django fonctionnel
  • Git installé sur votre machine locale
  • Votre code sur un dépôt GitHub

1

Console Bash

Accédez à la console Bash de PythonAnywhere et clonez votre dépôt:

git clone https://github.com/votre-repo

2

Environnement Virtuel

Créez et activez un environnement virtuel Python 3.10, Remplacez testenv par le nom de votre choix:

mkvirtualenv --python=/usr/bin/python3.10 testenv
workon testenv

3

Installation des Dépendances

Installez les packages nécessaires depuis requirements.txt.

pip install -r requirements.txt

4

Configuration Web

Dans l'interface de PythonAnywhere, accédez à l'onglet Web, créez une nouvelle application Web avec une configuration manuelle (assurez-vous de ne pas choisir l'option 'Django'), puis configurez les chemins comme suit :

# Source code: /home/username/project
# Working directory: /home/username/
# Virtual env: /home/username/.virtualenvs/testenv

# Configuration WSGI:
import os
import sys
from dotenv import load_dotenv

project_home = '/home/username/project'
# Charger les variables d'environnement depuis .env
load_dotenv(os.path.join(project_home, '.env'))

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

5

Base de Données MySQL

La prochaine étape consiste à configurer votre base de données MySQL sur PythonAnywhere. Cliquez sur l'onglet 'Databases' et suivez les instructions pour créer une nouvelle base de données MySQL. Assurez-vous de noter les informations de connexion à la base de données (nom d'utilisateur, mot de passe, nom de la base de données, etc.). Maintenant, vous devez configurer votre projet Django pour qu'il utilise la base de données MySQL sur PythonAnywhere. Modifiez votre fichier **settings.py** pour qu'il utilise les informations de connexion à la base de données MySQL. Assurez-vous de spécifier le bon nom d'utilisateur, mot de passe, nom de la base de données et hôte.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'your_db_name',
        'USER': 'your_username',
        'PASSWORD': 'your_password',
        'HOST': 'your_host',
        'PORT': '3306',
    }
}

6

Fichiers Statiques

Configurez les chemins des fichiers statiques:

# Dans settings.py
STATIC_URL = '/static/'
STATIC_ROOT = '/home/username/project/static'

MEDIA_URL = '/media/'
MEDIA_ROOT = '/home/username/project/media'

7

Déploiement

Exécutez les commandes de déploiement:

python manage.py makemigrations
python manage.py migrate
python manage.py collectstatic

Bonus - Commandes Utiles

Créer un superutilisateur

Créez un compte administrateur pour accéder à l'interface d'administration Django

python manage.py createsuperuser

Sauvegarder les données

Exportez toutes les données de votre base de données au format JSON

python -Xutf8 ./manage.py dumpdata > data.json

Restaurer les données

Importez les données depuis un fichier JSON dans votre base de données

python manage.py loaddata data.json