68 lines
1.8 KiB
Markdown
68 lines
1.8 KiB
Markdown
---
|
||
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
|