Chi*_*mar 16 python flask flask-extensions flask-security
有人使用Flask-Security扩展进行身份验证吗?如何使注册视图起作用?
http://packages.python.org/Flask-Security/customizing.html
我指的是上面的链接.
@app.route('/register', methods=['GET'])
def register():
return render_template('security/register_user.html')
Run Code Online (Sandbox Code Playgroud)
我不想扩展默认类,我只想在我的站点布局中包装默认注册视图,所以我这样做了.
{% extends "layout.html" %}
{% block title %}upload{% endblock %}
{% block body %}
{% from "security/_macros.html" import render_field_with_errors, render_field %}
{% include "security/_messages.html" %}
<h1>Register</h1>
<form action="{{ url_for_security('register') }}" method="POST" name="register_user_form">
{{ register_user_form.hidden_tag() }}
{{ render_field_with_errors(register_user_form.email) }}
{{ render_field_with_errors(register_user_form.password) }}
{% if register_user_form.password_confirm %}
{{ render_field_with_errors(register_user_form.password_confirm) }}
{% endif %}
{{ render_field(register_user_form.submit) }}
</form>
{% include "security/_menu.html" %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误?
werkzeug.routing.BuildError
BuildError: ('security.register', {}, None)
Run Code Online (Sandbox Code Playgroud)
dcr*_*dcr 33
您无需创建视图.Flask-Security中包含默认值.您只需要在烧瓶app配置中启用它:
app = Flask(__name__)
app.config['SECURITY_REGISTERABLE'] = True
Run Code Online (Sandbox Code Playgroud)
有了这个,'/ register'路线应该有效.
如果需要,还有另一个配置值可以更改URL:
app.config['SECURITY_REGISTER_URL'] = '/create_account'
Run Code Online (Sandbox Code Playgroud)
其他Flask-Security配置信息可以在这里找到:http: //pythonhosted.org/Flask-Security/configuration.html
cod*_*eek -1
我还没有真正使用过 Flask-Security,但 Builderror 指的是 Flask 无法将 security.register 视图绑定到 URL。安全性是蓝图的名称。所以我建议你尝试按如下方式调用视图。使用 security.route,而不是 app.route。
@security.route('/register', methods=['GET'])
def register():
return render_template('security/register_user.html')
Run Code Online (Sandbox Code Playgroud)