python - 自定义 ID Flask Sql Alchemy
问题描述
我正在尝试在表中创建自定义 ID。我要的身份证:
1909001 1909002
基本上格式是 yymm + 计数器,我想做一个查询来检查模型类中的最后一个 id。尝试使用此链接中的代码,但仍然没有运气。
class Task(db.Model):
task_id = db.Column(db.Integer, primary_key=True)
subject = db.Column(db.String(100), nullable=False)
request_dt = db.Column(db.DateTime, nullable=False)
request_detail = db.Column(db.Text, nullable=False)
requestor = db.Column(db.String(100), nullable=False)
def get_last_id(self):
ym = date.today().strftime("%y%m")
qry = self.query.filter(self.task_id.like("{}".format(ym))).order_by(self.task_id.desc()).first()
if qry.task_id == '':
return ym + '001'
else:
lastid = qry.task_id
return "{:02d}".format(int(lastid[-3:]) + 1)
def __init__(self, subject, req_dt, req_detail, reqtor):
self.task_id = self.get_last_id()
self.subject = subject
self.request_detail = req_detail
self.request_dt = req_dt
self.requestor = reqtor
解决方案
所以基本上你可以返回 id 表单任务,只需将字符串添加在一起并 zfill id。
def get_last_id():
qry = Task.query.order_by(Task.id.desc()).first()
x = qry.id
ym = date.today().strftime("%y%m")
q_custom_id = "" + ym + str(x).zfill(3) + ""
return q_custom_id
# print(Task.get_last_id())
我在数据库上有 3 个 ID,这将打印最后一个,ID 3 将变为:
1909003
我希望这对你有帮助:P
推荐阅读
- postgresql - CARTO Postgres 频率表(按年份)
- arrays - 在 Fortran 中返回数组的函数
- django - Django - HTML 输入值未在视图中打印
- java - Java DateTime 12 小时格式
- facebook - 从 Facebook 导入好友计数使用 IMPORTXML
- java - @SpringBootTest 装饰器导致 WatchService 的测试卡住
- android - Android buildTypes 与 productFlavors 错误
- asp.net - ASP.NET 按计时器更新数据列表不起作用
- c++ - 从 Redis++ 连接到 Docker 中的 Redis
- python - 在 azure databricks 上使用 python 将数据写入 azure sql