Skip to content

tian-gua/py-seal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

py-seal

基于 fastapi 的一个快速开发框架,更简约的注解、链式构建 sql 语句

Package version Supported Python versions


集成

  • fastapi
  • websocket
  • loguru
  • sqlite
  • mysql
  • mysql 连接池
  • 多数据源
  • cache
  • schedule

安装

pip install py-seal

例子

配置文件示例

seal:
  authorization:
    jwt_key: py-seal
    expire: 3600
    excludes:
      - /test/**
  mysql:
    host: 127.0.0.1
    port: 3306
    user: root
    password: root
    database: test

接口

@post("/login/submit")
async def projects(param: UserLoginParam):
    user = Query(User).eq("username", param.username).first()
    if user is None or user.password != param.password:
        raise BusinessException(message="用户名或密码错误!")
    return generate_token(uid=user.id, username=user.username)

定义实体

支持自定义和动态读取 model

@entity(table='user')
class User(BaseEntity):
    id: int
    username: str
    
@entity(table='role', dynamic=True)
class Role(BaseEntity):
    ...

sql 查询

mybatis plus 风格的链式构建 sql 语句

Query(User).eq("id", 1).first()
Query(table='user').eq("id", 1).first()
Query(table='user').list()
Update(User).set(status=1).eq("id", 1).update()
Update(User).eq("id", 1).delete()

License

GNU GENERAL PUBLIC LICENSE

About

https://www.tiangua.info/blog/2e16a83a-24eb-4472-bfa4-187430f84be1

About

基于 fastapi 的一个快速开发框架,更简约的注解、链式构建 sql 语句

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages