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

时间:2016-07-22 11:39:29

标签: python flask peewee flask-peewee

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

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类的代码(存储在单独的.py中,但那里有from models import *):

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

    class Meta:
        database = db 

虽然它似乎从webuser端“起作用”,但没有记录添加到数据库中。以前我用User.select().where(User.uname......做了它并且它有效,但现在我想切换到create_or_get()方法,因为它会缩短我的代码并且看起来更有效率。登录旧用户可以正常工作,因此可以正常连接和访问数据库。我很感激任何提示。

1 个答案:

答案 0 :(得分:1)

您链接的官方文档显示create_or_get仅接受关键字参数。要传递dict,您需要使用**语法:

User.create_or_get(**nuser)