====== Django ====== * [[python:gunicorn|Gunicorn]] * [[https://djangobook.com/mdj2-models/]] une petite référence de la manipulation des modèles dans le shell * [[https://mirat.dev/articles/djangoda-tehlikeli-template-etiketi-length/|This Django Template Tag is Killing Your Performance]] ==== Servir les fichiers statiques avec Gunicorn ==== [[https://stackoverflow.com/questions/12800862/how-to-make-django-serve-static-files-with-gunicorn|Source]] Ajouter dans le fichier ''urls.py'': from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns() ==== Inspecter la base de données pendant les tests ==== Utiliser un fichier comme base de données SQLite: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'TEST': { 'NAME': os.path.join(BASE_DIR, 'testdb.sqlite3'), } } } Dans le test, interrompre l'exécution en demandant à l'utilisateur de saisir quelque chose: input("Regarde la BDD, maintenant !") Lancer les tests: python manage.py test --keepdb [préciser le test à exécuter] Regarder le contenu de la base de données. Au lieu de placer un ''input'', il est apparemment aussi possible d'hériter de ''unittest.TestCase'' au lieu de ''django.test.TestCase'' (mais certaines fonctionnalités des tests de Django ne sont alors plus disponibles...). ==== Accéder aux données initiales d'un formulaire ==== f = SomeForm() for r in f.fields: print(r, f.fields[r].initial) ==== Un shell Django avec tous les modules importés ==== Grâce au paquet pip ''django-extensions'' : python manage.py shell_plus En ajoutant l'option ''%%--%%print-sql'', les requêtes SQL brutes exécutées sont aussi affichées ([[https://stackoverflow.com/a/31450706|source]]).