python:django

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
python:django [2019/09/21 14:30] – [Django] add link phswpython:django [2024/12/29 12:22] (Version actuelle) – [Un shell Django avec tous les modules importés] fix again formatting phsw
Ligne 4: Ligne 4:
  
   * [[https://djangobook.com/mdj2-models/]] une petite référence de la manipulation des modèles dans le shell   * [[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 ==== ==== Servir les fichiers statiques avec Gunicorn ====
  
Ligne 17: Ligne 18:
 urlpatterns += staticfiles_urlpatterns() urlpatterns += staticfiles_urlpatterns()
 </code> </code>
 +
 +
 +
 +==== Inspecter la base de données pendant les tests ====
 +
 +Utiliser un fichier comme base de données SQLite:
 +<code python>
 +DATABASES = {
 +    'default': {
 +        'ENGINE': 'django.db.backends.sqlite3',
 +        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
 +        'TEST': {
 +            'NAME': os.path.join(BASE_DIR, 'testdb.sqlite3'),
 +        }
 +    }
 +}
 +</code>
 +
 +Dans le test, interrompre l'exécution en demandant à l'utilisateur de saisir quelque chose:
 +<code python>
 +input("Regarde la BDD, maintenant !")
 +</code>
 +
 +Lancer les tests:
 +<code bash>
 +python manage.py test --keepdb [préciser le test à exécuter]
 +</code>
 +
 +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 ====
 +
 +<code python>
 +f = SomeForm()
 +for r in f.fields:
 +    print(r, f.fields[r].initial)
 +</code>
 +
 +
 +
 +==== Un shell Django avec tous les modules importés ====
 +
 +Grâce au paquet pip ''django-extensions'' :
 +<code bash>
 +python manage.py shell_plus
 +</code>
 +
 +En ajoutant l'option ''%%--%%print-sql'', les requêtes SQL brutes exécutées sont aussi affichées ([[https://stackoverflow.com/a/31450706|source]]).
 +
  
  • python/django.1569069043.txt.gz
  • Dernière modification : 2021/04/04 17:01
  • (modification externe)