【问题标题】:create_or_get with data from user input使用来自用户输入的数据 create_or_get
【发布时间】:2016-11-26 07:16:51
【问题描述】:

尝试在网站上实现用户注册表单我无法将用户输入作为新用户添加到数据库中。我将 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 类的代码如下(存储在单独的.py 中,但上面有from models import *):

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

    class Meta:
        database = db 

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

【问题讨论】:

  • 文档显示参数为“**kwargs”,因此单个未命名的字典将不起作用。将其更改为User.create_or_get(**nUser)
  • 下面已经回答了,但感谢您的帮助;)

标签: python flask peewee flask-peewee


【解决方案1】:

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

User.create_or_get(**nuser)

【讨论】:

    猜你喜欢
    • 2015-11-10
    • 2019-09-09
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多