Name | fastapi-extend JSON |
Version |
0.1.3
JSON |
| download |
home_page | |
Summary | fastapi extend |
upload_time | 2024-01-10 12:46:00 |
maintainer | |
docs_url | None |
author | lvyunze |
requires_python | >=3.8 |
license | |
keywords |
fastapi
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
### 1、install
``` pip install fastapi_extend ```
### 2、use
```python
from sqlalchemy import Column, String, Integer, Float, DateTime
from sqlalchemy.ext.declarative import declarative_base # ORM(对象关系映射)的基类
Base = declarative_base()
from fastapi_extend.serializer import Serializer
class Trade(Base):
__tablename__ = "trade"
id = Column(Integer, primary_key=True)
account = Column(String(20), default=None, nullable=False)
trade_datetime = Column(DateTime)
volume = Column(Float, default=None, nullable=False)
price = Column(Float, default=0, nullable=False)
order_id = Column(String(20))
class TradeSer(Serializer):
account: str
trade_datetime = Column(DateTime)
volume: float
price: float
order_id: str
```
#### 1)、Pagination
```python
from fastapi_extend.pagenator import PageNumberPagination
from pydantic import validator
from sqlalchemy import Column, String, Integer, Float, DateTime
paginator = PageNumberPagination(
params,
Trade,
TradeSer,
exclude={"start", "end"},
)
query = paginator.get_queryset()
if params.start:
query = query.where(Trade.trade_datetime >= params.start)
if params.end:
query = query.where(Trade.trade_datetime <= params.end)
data = await paginator.paginate_query(query, session)
```
#### 2)、Serializer
```python
from fastapi_extend.serializer import Serializer
from pydantic import validator
class TradeSer(Serializer):
account: str
volume: float
price: float
order_id: str
@validator("price")
def price_add(cls, v):
return v + 10
data_ser = TradeSer.dump(result.scalars(), many=True)
```
Raw data
{
"_id": null,
"home_page": "",
"name": "fastapi-extend",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "fastapi",
"author": "lvyunze",
"author_email": "17817462542@163.com",
"download_url": "",
"platform": null,
"description": "### 1\u3001install\n``` pip install fastapi_extend ```\n### 2\u3001use\n```python\nfrom sqlalchemy import Column, String, Integer, Float, DateTime\nfrom sqlalchemy.ext.declarative import declarative_base # ORM(\u5bf9\u8c61\u5173\u7cfb\u6620\u5c04)\u7684\u57fa\u7c7b\nBase = declarative_base()\nfrom fastapi_extend.serializer import Serializer\n\nclass Trade(Base):\n __tablename__ = \"trade\"\n id = Column(Integer, primary_key=True)\n account = Column(String(20), default=None, nullable=False)\n trade_datetime = Column(DateTime)\n volume = Column(Float, default=None, nullable=False)\n price = Column(Float, default=0, nullable=False)\n order_id = Column(String(20))\n\nclass TradeSer(Serializer):\n account: str\n trade_datetime = Column(DateTime)\n volume: float\n price: float\n order_id: str\n```\n#### 1\uff09\u3001Pagination\n```python\nfrom fastapi_extend.pagenator import PageNumberPagination\n\nfrom pydantic import validator\nfrom sqlalchemy import Column, String, Integer, Float, DateTime\n\npaginator = PageNumberPagination(\n params,\n Trade,\n TradeSer,\n exclude={\"start\", \"end\"},\n )\nquery = paginator.get_queryset()\nif params.start:\n query = query.where(Trade.trade_datetime >= params.start)\nif params.end:\n query = query.where(Trade.trade_datetime <= params.end)\ndata = await paginator.paginate_query(query, session)\n```\n#### 2)\u3001Serializer\n```python\nfrom fastapi_extend.serializer import Serializer\nfrom pydantic import validator\n\nclass TradeSer(Serializer):\n account: str\n volume: float\n price: float\n order_id: str\n\n @validator(\"price\")\n def price_add(cls, v):\n return v + 10\n\ndata_ser = TradeSer.dump(result.scalars(), many=True)\n\n```\n",
"bugtrack_url": null,
"license": "",
"summary": "fastapi extend",
"version": "0.1.3",
"project_urls": null,
"split_keywords": [
"fastapi"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3cccabe6bb9ba2b1e299a4fe7ef4446550f4ec373fd34a2143b0764cb6f30e04",
"md5": "12c39eb607d969e8222a8adc342553c1",
"sha256": "dd5d65d6dbc4c2e0c7439530a0593a0807244513f6f7bbbb41584a19745867be"
},
"downloads": -1,
"filename": "fastapi_extend-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "12c39eb607d969e8222a8adc342553c1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 9466,
"upload_time": "2024-01-10T12:46:00",
"upload_time_iso_8601": "2024-01-10T12:46:00.458927Z",
"url": "https://files.pythonhosted.org/packages/3c/cc/abe6bb9ba2b1e299a4fe7ef4446550f4ec373fd34a2143b0764cb6f30e04/fastapi_extend-0.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-10 12:46:00",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "fastapi-extend"
}