自定义IDFlaskSql炼金术

2024-05-14 10:02:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在表中创建一个自定义ID。我想要的身份证:

1909001年 1909002年

基本上,格式是yymm+counter,我想做一个查询来检查model类中的最后一个id。尝试使用来自此link的代码,但仍然没有成功。在

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

Tags: selfidfalsetaskdbstringrequestdt
2条回答

因此,基本上可以返回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,ID 3将变成:

^{pr2}$

我希望这对你有帮助:p

我写了一个小瓶子应用程序,可以帮助你回答你的问题。在

您将获得与您尝试获取的相同格式的自定义id。在

see the table screenshot

id  custom_id   subject request_detail  request_dt  request_or  date
3   1909003 subject_3   request_detail_3    request_dt_3    request_or_3    2019-09-15 02:35:19.661868
2   1909002 subject_2   request_detail_2    request_dt_2    request_or_2    2019-09-15 02:35:06.191687
1   1909001 subject_1   request_detail_1    request_dt_1    request_or_1    2019-09-15 02:34:21.406240

应用程序副本

^{pr2}$

设置-任务.html

<div>
    <form action="{{ url_for('set_task') }}" method="post">

        {{ form.csrf_token }}

        {{ form.subject.label }}
        {{ form.subject }}

        {{ form.request_detail.label }}
        {{ form.request_detail }}

        {{ form.request_dt.label }}
        {{ form.request_dt }}

        {{ form.request_or.label }}
        {{ form.request_or }}

        {{ form.submit }}
    </form>
</div>

索引.html

^{4}$

相关问题 更多 >

    热门问题