Quart-DB is a Quart extension that provides managed connection(s) to postgresql or sqlite database(s).
Quart-DB is used by associating it with an app and a DB (via a URL)
and then utilising the g.connection
connection,
from quart import g, Quart, websocket
from quart_db import QuartDB
app = Quart(__name__)
db = QuartDB(app, url="postgresql://user:pass@localhost:5432/db_name")
@app.get("/<int:id>")
async def get_count(id: int):
result = await g.connection.fetch_val(
"SELECT COUNT(*) FROM tbl WHERE id = :id",
{"id": id},
)
return {"count": result}
@app.post("/")
async def set_with_transaction():
async with g.connection.transaction():
await db.execute("UPDATE tbl SET done = :done", {"done": True})
...
return {}
@app.get("/explicit")
async def explicit_usage():
async with db.connection() as connection:
...
Quart-DB is developed on GitHub. If you come across an issue, or have a feature request please open an issue. If you want to contribute a fix or the feature-implementation please do (typo fixes welcome), by proposing a merge request.
The best way to test Quart-DB is with Tox,
$ pip install tox
$ tox
this will check the code style and run the tests.
The Quart-DB documentation is the best places to start, after that try searching stack overflow or ask for help on gitter. If you still can't find an answer please open an issue.