【发布时间】:2022-02-02 04:12:32
【问题描述】:
无法理解,为什么这段代码不起作用,我试图理解,但我只是在学习 Flask&Py,请帮助我:
烧瓶:
@freepylib.route('/register', methods=['POST', 'GET'])
def signup_user():
if request.method == "POST":
username, useremail, userpasswd=request.form['name'], request.form['email'], request.form['password']
reg = Users(uname=username, useremail=useremail, upasswrd=userpasswd)
try:
mydb.session.add(reg)
mydb.session.commit()
token = reg.get_token()
return {'access_token': token}
except Exception as e:
return str(e)
else:
return render_template("register.html")
HTML 代码:
<form method="POST" name="reg" id="reg">
<input type ="text" class ="fadeIn second" name ="name" placeholder="name">
<input type="text" class="fadeIn second" name="email" placeholder="email">
<input type="text" class="fadeIn third" name="password" placeholder="password">
<input type="submit" name="subm" class="fadeIn fourth" value="Sign Up">
</form>
错误:
(pymysql.err.IntegrityError) (1048, "Column 'uname' cannot be null") [SQL: INSERT INTO `PFL_USERS` (uname, email, upasswrd) VALUES (%(uname)s, %(email)s, %(upasswrd)s)] [parameters: {'uname': None, 'email': None, 'upasswrd': None}] (Background on this error at: http://sqlalche.me/e/13/gkpj)
【问题讨论】:
-
您能否尝试使用 Chrome DevTools 中的“网络”选项卡来确认 POST 请求实际上包含您所期望的表单数据?
-
@ChrisSears,是的,我在 Payload 中找到了它们,状态码是 200
-
接下来我要检查的是记录 request.form 的值,看看表单数据是否达到了那个程度。
-
@ChrisSears,完成,在 reg = Users(uname=username, useremail=useremail, upasswrd=userpasswd) 之前添加了写入文件,所有参数都写入了文件,接下来我可以做什么?跨度>
-
def __init__(self, **kwargs): self.uname = kwargs.get('name') self.email = kwargs.get('email') self.upasswrd = kwargs.get( 'password') def get_token(self, expire_time=1): expire_delta = timedelta(expire_time) token = create_access_token(identity=self.uid, expires_delta=expire_delta) return token
标签: python flask flask-sqlalchemy