create_or_get 包含来自用户输入的数据

create_or_get with data from user input

尝试在网站上实现用户注册表单时,我无法将用户输入作为新用户添加到数据库中。我将 Flask 与 Peewee 一起使用,并且:

nUser ={
        'email': request.form['e_mail'],
        'uname': request.form['username'],
        'pword': request.form['password'],                     
        'time': strftime('%Y-%m-%d %H:%M:%S')

}
nUser = User.create_or_get()

其中 nUser 是新用户的临时字典。我应该提一下,我用 the official peewee docs 试过 nUser, created = User.create_or_get(nUser) 什么返回了太多参数的错误。

关于User class的代码在下面(存储在单独的.py中,但那里有from models import *):

class User(Model):
    email=TextField()
    uname=TextField(unique=True)
    pword=TextField()
    time=TextField()

    class Meta:
        database = db 

虽然从网络用户的角度看"works",但没有记录添加到数据库中。以前我用 User.select().where(User.uname...... 做到了并且它有效,但现在我想切换到 create_or_get() 方法,因为它会缩短我的代码并且看起来更有效率。旧用户登录有效,因此连接和访问数据库没问题。如果有任何提示,我将不胜感激。

您 link 表明 create_or_get 仅采用关键字参数的官方文档。要传递字典,您需要使用 ** 语法:

User.create_or_get(**nuser)