第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Flask-Sqlalchemy:每次提交模型的新實例時如何調用函數(shù)?

Flask-Sqlalchemy:每次提交模型的新實例時如何調用函數(shù)?

牧羊人nacy 2023-05-16 14:27:05
每次提交新用戶時,我都想創(chuàng)建一個新的隨機用戶 ID。為此,我使用的格式是:USR-<token>令牌是由這個函數(shù)制作的:import stringimport secretsdef make_token():    set = string.ascii_letters+string.digits    while True:        token = ''.join(secrets.choice(set) for i in range(6))        if(any(c.islower() for c in token) and           any(c.isupper() for c in token) and           sum(c.isdigit() for c in token)>=3 ):           break    return token此函數(shù)將在此數(shù)據(jù)庫模型中調用:class User(db.Model):    usrid = db.Column(db.String(10), primary_key=True,                        default="USR-{}".format(make_token()))    usrnm = db.Column(db.String(20), unique=True, nullable = False)我希望令牌每次都是新的。但是現(xiàn)在如果我提交兩個用戶對象,它會給我一個Constraint Failed : Unique錯誤。另外,我正在使用 SQLite 進行測試,如果這有什么不同的話。該模型比這更大,但對于這個問題,我認為只有這些部分是相關的。
查看完整描述

1 回答

?
森林海

TA貢獻2011條經(jīng)驗 獲得超2個贊

我認為你需要將make_token函數(shù)作為default參數(shù)傳遞,而不是它的返回值。

所以你可以嘗試讓你的make_token函數(shù)在字符串前面加上“USR-”:

    # ...
    return "USR-" + token

然后將該函數(shù)作為default參數(shù)傳遞:

    usrid = db.Column(db.String(10), primary_key=True,
                        default=make_token)


查看完整回答
反對 回復 2023-05-16
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號