Files
training.django/documentation/99-extra-tools.md
Steve Kossouho e3ebf6bf4f Add documentation and source
Added documentation, source and extra files.
2025-07-02 20:26:50 +02:00

68 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Outils Django
author: Steve Kossouho
---
# Outils supplémentaires Django
----
## Informations avancées de débogage en développement
Même si ce n'est pas nécessaire, il peut être intéressant pour un développeur
Django d'avoir à disposition, lorsqu'il teste ses vues, des informations sur les
performances de sa vue : temps d'exécution, temps d'exécution des requêtes de base
de données, templates utilisés etc.
[django-debug-toolbar](https://django-debug-toolbar.readthedocs.io/en/latest/)
----
## Générer des graphiques (charts)
- [django-chartjs](https://django-chartjs.readthedocs.io/en/latest/)
- [django-slick-reporting](https://django-slick-reporting.readthedocs.io/en/latest/)
----
## Afficher des données en table et filtrer
- django-tables2 : Afficher des tableaux depuis des modèles
- django-filter : Pouvoir filtrer un queryset via un formulaire
----
## Convertir une page HTML en PDF
Il existe quelques outils pour convertir des pages web HTML en ligne vers des fichiers PDF.
On utilise généralement des outils d'automatisation de navigateur, tels que Selenium.
`Playwright` est actuellement l'un des outils les plus aboutis pour automatiser un navigateur.
[Playwright](https://playwright.dev/python/docs/intro)
----
```bash
pip install playwright
```
Installer playwright nécessite au moins 500 Mo d'espace libre sur votre système de fichiers.
----
```python
from argparse import ArgumentParser
from playwright.sync_api import sync_playwright
with sync_playwright() as pw:
browser = pw.chromium.launch()
context = browser.new_context()
page = context.new_page() # ouvre un onglet
page.goto("protocol://url")
page.pdf(format="A4", print_background=True, scale=1.0, path=f"filename.pdf")
browser.close()
```
Exemple d'automatisation