【发布时间】:2021-08-17 19:54:25
【问题描述】:
我正在编写一段代码来检查有效的用户凭据,就像在我的应用中一样:
@app.route('/register', methods=('GET', 'POST'))
def register():
if request.method == 'POST':
username = request.form['username']
email = request.form['email']
password = request.form['password']
db = get_db()
error = None
if not username:
error = 'Username is required'
if validate_user(username) is False:
error = 'Usernames must be 5 to 10 in length, not start with a number and use only lowercase.'
elif not email:
error = 'Email is required'
elif not password:
error = 'Password is required'
在验证用户的函数中,代码如下:
def validate_user(user):
valid_user = re.compile(r'\D{1}[D\d]{4,9}')
matched = valid_user.match(user)
if matched:
return True
else:
return False
在我使用jinja 的表单中,我有以下代码,特定于 user 部分:
{% block content %}
<form method="post">
<div>
<label for="username">Username</label>
<input type="text" name="username" id="username" size="45"
title="cannot start with a number, have a length of 5 to 10 non-special characters" required>
</div>
当我测试这个功能时,即使一切看起来都已经到位,页面也不会通过注册。真的在这上面旋转我的轮子,因为它看起来很微不足道......
【问题讨论】:
-
不熟悉flask或jinja,但对您如何在此处呈现模板有疑问?
-
该模板由jinja 渲染,它需要一个html 文件并对其进行一定的标记。更多信息在这里jinja.palletsprojects.com/en/3.0.x
-
是的,我知道,但代码中没有,这就是我问的原因。
-
这是你完整的注册功能吗?我希望最后有一个回报声明。例如重定向到登录表单或类似的东西
-
@shiny - 这是完整代码的一部分,是的,它最后有一个返回,但这里省略了
标签: jinja python html regex flask jinja2