A package to simplify filtering and sorting in FastAPI
Project description
Introduction
fastapi-query-tools is a Python library designed to simplify filtering and sorting in FastAPI applications.
It provides a set of utility functions and data models to help you filter, sort, and order your data to be returned to your clients.
fastapi-query-tools is built on top of the popular fastapi library. It is currently designed to work with SQLAlchemy, but support for other databases may be added in the future.
It is compatible with Python 3.10 and higher.
Features:
- Simplifies filtering and sorting in FastAPI applications.
- Supports a query, a sort by, and an order by system.
- Works with
SQLAlchemy. - Compatible with Python 3.10 and higher.
Installation
pip install fastapi-query-tools
Quickstart
All you need to do is to add the Filter dependency to the endpoint params and call filter_and_sort function
on data you want to filter and/or sort.
from fastapi import FastAPI, Depends
from sqlalchemy import select
# import all you need from fastapi-query-tools
from fastapi_query_tools import Filter, filter_and_sort
app = FastAPI() # create FastAPI app
@app.get('/items')
async def get_items(*, db: Session = Depends(get_db), filter: Filter) -> List[ItemOut]:
stmt = select(Item)
query = filter_and_sort(stmt, filter)
return db.execute(query).scalars().all() # filter and sort data and return
Example Request
curl -X 'GET' \
'http://localhost:8000/api/items?q=item&sort_by=name&order=desc' \
-H 'accept: application/json' \
Where q is a query, sort_by is a field (column) to sort by, and order (asc, desc) is the order of sorting.
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastapi_query_tools-1.0.7.tar.gz.
File metadata
- Download URL: fastapi_query_tools-1.0.7.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7973688a3cd534c749306fc9a62e87e5bad100f9e4b81861ff933dcd96dd48f3
|
|
| MD5 |
e485dc4d08327c07fcc591f4806f0af8
|
|
| BLAKE2b-256 |
08b1c2484f543920cc778072f48f4158f1f9bc2d488c37e022ed5ff23f36e9f6
|
File details
Details for the file fastapi_query_tools-1.0.7-py3-none-any.whl.
File metadata
- Download URL: fastapi_query_tools-1.0.7-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57d42fb54454553cbf017970637db6e1d7c80e0824d849ba9dd814ef75cf7cab
|
|
| MD5 |
a63659a72c3257dc08bd8cbf7d545edb
|
|
| BLAKE2b-256 |
4624612d0a3dd52ba5d8b2e58bd774ed07621d01d332ac85a3706c27fddf948d
|