Utiliser pdb.
Qui ne connait pas pdb ?
Comme pdb (mais tout en mieux):
1 from ipdb import set_trace
2 set_trace()
Installation:
pip install ipdb
Être paresseux.
pip install debug
import debug
Moins à retenir ! Import aussi "see".
Remarque: vous connaissez pprint ?
Être tout aussi paresseux:
ipython --pdb script.py
ipython --pdb script.py
Lance (i)pdb si le script rate.
(Qui ne connait pas ipython ?)
Mieux vaut prévenir que guerrir:
1 from ipdb import launch_ipdb_on_exception
2 with launch_ipdb_on_exception():
3 ...
L'arme de destruction massive:
1 from IPython import embed; embed()
ATTENTON: ce n'est pas un debugger ! (démo)
Ipython a une fonction magique "%run".
%run -d script.py
%run -t script.py
Insère dans le contexte de ipython.
Lire le %quickref de ipython !!
Attention: intrusif !
Démo.
https://github.com/django-debug-toolbar/django-debug-toolbar
pip install django-extensions
pip install werkzeug
Ajouter 'django_extensions' aux INSTALLED_APPS.
python manage.py runserver_plus
Vous donne un shell de debug dans vos pages d'erreurs 500 ! (Le même que dans Flask).
Et aussi:
python manage.py shell_plus
Il y a plus de trucs cool mais je connais pas trop.
pip install django-pdb
'django_pdb' dans vos INSTALLED_APPS et 'django_pdb.middleware.PdbMiddleware' à la fin de vos middleware.
{% load pdb %}
{{ variable.truc.bidule|ipdb }}
{{ variable.truc.bidule|ipdb|un_filtre_a_debugger }}
Ou:
http://localhost:8000/ma_super_url?ipdb
Ou:
python manage.py runserver --ipdb
python manage.py runserver --pm
python manage.py test --ipdb
(Marche avec pdb aussi, mais on s'en fou)
https://github.com/dcramer/django-devserver runserver de Django on steroïd. Peut testé, a l'air d'avoir beaucoup évolué depuis la dernière fois que j'ai regardé. Démo ?
https://github.com/dcramer/pdbinject Marche mais trop réussit à m'en servir de manière intéressante.
Table of Contents | t |
---|---|
Exposé | ESC |
Full screen slides | e |
Presenter View | p |
Source Files | s |
Slide Numbers | n |
Toggle screen blanking | b |
Show/hide slide context | c |
Notes | 2 |
Help | h |