technique:python:quart

Ceci est une ancienne révision du document !


Python et quart

Framwork Python pour Flask-like !

serveur web, websocket, jinja templates, et des trucs pour de l'“asynchrone que c'est bien”. (asyncio)

https://quart.palletsprojects.com/en/latest/

Dans un virtualenv :

pip install quart

Et aussi, si on veut ajouter les variables d'environnement :

pip install python-dotenv

Basique, simple :

from quart import Quart

app = Quart(__name__)

@app.route("/")
async def hello():
    return "Hello, World!"

if __name__ == "__main__":
    app.run(debug=True)
from quart import Quart, render_template, request, url_for, current_app, redirect

async def admin() -> str:
    if request.method == "GET":
        return await render_template('admin.html',appconfig=current_app.config)
    if request.method == "POST":
        form = await request.form
    try:
        actionadmin = form["actionadmin"]
    except BadRequestKeyError:
        actionadmin = ""
    return await render_template('admin.html',actionadmin=actionadmin,appconfig=current_app.config)

async def index() -> str:
    return await render_template('index.html',appconfig=current_app.config)

def create_app(mode='Development') -> Quart:
    app = Quart(__name__)
    app.config.from_object(f"config.{mode}")
    with open("settings.toml", "r") as f:
        app.config.update(toml.load(f))
    app.add_url_rule("/", view_func=index, methods=['GET']) # fonction index
    # GET is allowed here only to redirect to /
    app.add_url_rule("/admin/", view_func=admin, methods=['POST', 'GET']) # fonction admin
    return app

Et démarrage en mode production avec :

QUART_APP=app:create_app quart run
  • technique/python/quart.1709389162.txt.gz
  • Dernière modification : 2024/03/02 15:19
  • de francoisa