跳转至

开发记录


1 一些功能的实现

1.1 建立数据库模型

1.1.1 获取带时区的时间

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from datetime import datetime
from tzlocal import get_localzone
from sqlmodel import SQLModel, Field


class Enrollment(SQLModel, table=True):
    id: int | None = Field(default=None, primary_key=True)  # 主键
    department: int  # 部门编号
    applicant: int  # 申请人 (外键 user.id)
    time: datetime = Field(default=datetime.now(get_localzone()))  # 申请时间
    status: int  # 状态


# 格式化为带时区的UTC时间
test = Enrollment()
print(test.time.strftime("UTC%z %Y-%m-%d %H:%M:%S"))

1.2 添加数据

1.2.1 由于重复引起的报错

Field = (unique = True)

会返回一个 IntegrityError

1
from sqlalchemy.exc import IntegrityError

2 一些注意事项

2.1 依赖项注入

若写成这种情况:

1
2
3
def function(para:int):
    pass
depends = Depends(function())

则会报错,提示函数 function()​ 需要一个参数。

原因是 Python 将其识别为对函数进行调用,而不是给 Depends()​ 函数传参。

正确写法:

1
2
3
def function(para:int):
    pass
depends = Depends(function)