Files
pear-admin-flask/docs/model.md
T
2023-06-21 01:44:52 +08:00

1.5 KiB

模型/数据库和序列化

数据库连接

项目采用flask-sqlalchemy,支持多数据库连接,默认sqlite

HOSTNAME: 指数据库的IP地址 USERNAME:指数据库登录的用户名 PASSWORD:指数据库登录密码 PORT:指数据库开放的端口 DATABASE:指需要连接的数据库名称

mssql

MSSQL:    f"mssql+pymssql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=cp936"

msyql

$ pip install pymysql

# 手动在mysql中创建数据库,并将配置文件中的url配置如下示例

SQLALCHEMY_DATABASE_URI =  f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"

Oracle

Oracle:   f"oracle+cx_oracle://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}"

SQLite

SQLite    "sqlite:/// database.db"

Postgres

Postgres f"postgresql+psycopg2://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}"

序列化

推荐使用这种自动类型的

from flask_marshmallow.sqla import SQLAlchemyAutoSchema
from applications.models import 你的模型类
class RoleOutSchema(SQLAlchemyAutoSchema):
    class Meta:
        model = 你的模型类  # table = models.Album.__table__
        # include_relationships = True  # 输出模型对象时同时对外键,是否也一并进行处理
        include_fk = True  # 序列化阶段是否也一并返回主键
        # fields= ["id","name"] # 启动的字段列表
        # exclude = ["id","name"] # 排除字段列表