Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente | |||
| technique:python:quart [2024/03/02 20:52] – francoisa | technique:python:quart [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Python et quart ====== | + | **Cette page est obsolète. Veuillez accéder au contenu à son nouvel emplacement : |
| - | + | ||
| - | Framwork Python pour Flask-like ! | + | |
| - | + | ||
| - | serveur web, websocket, jinja templates, et des trucs pour de l'" | + | |
| - | + | ||
| - | [[https://quart.palletsprojects.com/en/latest/ | + | |
| - | + | ||
| - | ===== Installation ===== | + | |
| - | + | ||
| - | Dans un virtualenv : | + | |
| - | < | + | |
| - | + | ||
| - | pip install | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Et aussi, si on veut ajouter les variables d' | + | |
| - | + | ||
| - | < | + | |
| - | pip install python-dotenv | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | ===== Démarrage ===== | + | |
| - | + | ||
| - | Basique, simple : | + | |
| - | + | ||
| - | <code python> | + | |
| - | from quart import Quart | + | |
| - | + | ||
| - | app = Quart(__name__) | + | |
| - | + | ||
| - | @app.route("/" | + | |
| - | async def hello(): | + | |
| - | return " | + | |
| - | + | ||
| - | if __name__ == " | + | |
| - | app.run(debug=True) | + | |
| - | + | ||
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | ===== Démarrage plus élaboré ===== | + | |
| - | + | ||
| - | <code python> | + | |
| - | from quart import Quart, render_template, | + | |
| - | + | ||
| - | async def admin() -> str: | + | |
| - | if request.method == " | + | |
| - | return await render_template(' | + | |
| - | if request.method == " | + | |
| - | form = await request.form | + | |
| - | try: | + | |
| - | actionadmin = form[" | + | |
| - | except BadRequestKeyError: | + | |
| - | actionadmin = "" | + | |
| - | return await render_template(' | + | |
| - | + | ||
| - | async def index() -> str: | + | |
| - | return await render_template(' | + | |
| - | + | ||
| - | def create_app(mode=' | + | |
| - | app = Quart(__name__) | + | |
| - | app.config.from_object(f" | + | |
| - | with open(" | + | |
| - | app.config.update(toml.load(f)) | + | |
| - | app.add_url_rule("/", | + | |
| - | # GET is allowed here only to redirect to / | + | |
| - | app.add_url_rule("/ | + | |
| - | return app | + | |
| - | + | ||
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Et démarrage en mode production avec : | + | |
| - | + | ||
| - | < | + | |
| - | QUART_APP=app: | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Et démarrage en mode Dev avec : | + | |
| - | + | ||
| - | < | + | |
| - | QUART_APP=app: | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Ou à placer dans un .env : | + | |
| - | + | ||
| - | < | + | |
| - | QUART_APP=app: | + | |
| - | QUART_DEBUG=1 | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | et lancer un : | + | |
| - | + | ||
| - | < | + | |
| - | source .env && quart run | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||