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 | + | |
- | + | ||
- | </ | + | |
- | + |