An extension for GINO to integrate with Quart
Project description
gino-quart
Introduction
An extension for GINO to support quart server.
Usage
The common usage looks like this:
from quart import Quart
from gino.ext.quart import Gino
app = Quart()
db = Gino(app, **kwargs)
Configuration
GINO adds a before_request
, after_request
and before_first_request
hook to the Quart app to setup and cleanup database according to
the configurations that passed in the kwargs
parameter.
The config includes:
Name | Description | Default |
---|---|---|
driver |
the database driver | asyncpg |
host |
database server host | localhost |
port |
database server port | 5432 |
user |
database server user | postgres |
password |
database server password | empty |
database |
database name | postgres |
dsn |
a SQLAlchemy database URL to create the engine, its existence will replace all previous connect arguments. | N/A |
retry_times |
the retry times when database failed to connect | 20 |
retry_interval |
the interval in seconds between each time of retry | 5 |
pool_min_size |
the initial number of connections of the db pool. | N/A |
pool_max_size |
the maximum number of connections in the db pool. | N/A |
echo |
enable SQLAlchemy echo mode. | N/A |
ssl |
SSL context passed to asyncpg.connect |
None |
use_connection_for_request |
flag to set up lazy connection for requests. | N/A |
retry_limit |
the number of retries to connect to the database on start up. | 1 |
retry_interval |
seconds to wait between retries. | 1 |
kwargs |
other parameters passed to the specified dialects, like asyncpg . Unrecognized parameters will cause exceptions. |
N/A |
Lazy Connection
If use_connection_for_request
is set to be True, then a lazy connection is available
at request['connection']
. By default, a database connection is borrowed on the first
query, shared in the same execution context, and returned to the pool on response.
If you need to release the connection early in the middle to do some long-running tasks,
you can simply do this:
await request['connection'].release(permanent=False)
Contributing
You're welcome to contribute to this project. It's really appreciated. Please fork this project and create a pull request to the dev branch.
- Dependency management is done via poetry
- Pull request for new features must include the appropriate tests integrated in
tests/test_gino_quart.py
- You should format your code. Recommended is black
Older Quart Versions
gino-quart
requires a quart version higher or equal to quart 0.15.1
after the 1.1.2 release. This is caused by multiple breaking changes with, amongst other things, exception handling. You can still use gino-quart
0.1.1b5
for older version.
Attribution
The license holder of this extension is Tony Wang.
This project is an extension to GINO and part of the python-gino community.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gino-quart-0.1.2.tar.gz
.
File metadata
- Download URL: gino-quart-0.1.2.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.6 CPython/3.8.10 Linux/5.4.0-1047-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | abe4132fe5c341d28024b46f530c782617841eff08727ab373fd95313ae94853 |
|
MD5 | 0185da573385a486aabb09ae6663693a |
|
BLAKE2b-256 | 4a6f0b35b7d761c3b3aa8f3e725b4e0a67dfc5ea89f73d3721626809dc40a7a9 |
File details
Details for the file gino_quart-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: gino_quart-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.6 CPython/3.8.10 Linux/5.4.0-1047-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92590354ded330c17f3cc1ef82cb6341fb6cf0605ea0124442f903b0e860c6d8 |
|
MD5 | 69b009b011791f9438af496b7f7e70cb |
|
BLAKE2b-256 | 6b486deab99887a0e43566ee4764bb075aa7cc0f2a9a373f295a3ac07603c734 |