##Mémo pour une première app avec Django
On va zapper l’installation de django et se dire qu’on part avec une install propre.
On se place dans le dossier que l’on va utilise pour la suite et on crée son site :
django-admin startproject super_site
Un squelette de site est créé. On maintenant lui dire de passer par une base mysql donc :
nano super_site/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'nom_base_de_donnees',
'USER': 'mysql_user',
'PASSWORD': 'mysql_pass',
'HOST': 'ip_serveur',
'PORT': '3306',
}
On en profite:
LANGUAGE_CODE = 'fr-FR'
TIME_ZONE = 'UTC'
Mise à jour de l’installation:
python manage.py migrate
Si tout s’est bien passé, les tables systèmes nécessaires ont été créées sur le serveur mysql.
Pour lancer le serveur:
python manage.py runserver ip_serveur:port_serveur
Etant en auto-refresh, les modifications seront verront en direct.
On crée notre application:
python manage.py startapp mon_appli
et on l’active dans le fichier de settings (nano super_site/settings.py
)
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mon_appli'
)
On attaque le gros avec la création du model django. Ce sont les tables qui vont être créées et utilisées pour l’application.
Les models se crée ici mon_appli/models.py
. Chaque structure de données est une classe et conditionneront la création automatique des tables via la commande python manage.py makemigrations mon_appli
qui génère le fichier suivant mon_appli/migrations/0001_initial.py
.
Puis, python manage.py sqlmigrate mon_appli 0001
permet de voir les commandes sql qui seront lancées pour la création ou mise à jour des tables.
Enfin, python manage.py migrate
créera ou modifiera effectivement les tables dans la base de données.