Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Flask安全性的Flask身份验证_Python_Authentication_Flask - Fatal编程技术网

Python 使用Flask安全性的Flask身份验证

Python 使用Flask安全性的Flask身份验证,python,authentication,flask,Python,Authentication,Flask,正在尝试使用flask安全性在flask中启用登录。以下代码工作正常(我在\uuuu init\uuuu.py中导入) 但是,如果我将user=Blueprint('user','uuu name','uuuuu)更改为user=Blueprint('user','uuuuu name','url\u prefix='/blah')则会失败,出现werkzeug.routing.BuildError BuildError:('auth.authenticate',{},None)。url_是个问

正在尝试使用flask安全性在flask中启用登录。以下代码工作正常(我在
\uuuu init\uuuu.py
中导入)


但是,如果我将
user=Blueprint('user','uuu name','uuuuu)
更改为
user=Blueprint('user','uuuuu name','url\u prefix='/blah')
则会失败,出现
werkzeug.routing.BuildError BuildError:('auth.authenticate',{},None)
。url_是个问题,但我不明白为什么。停

找到了答案。原来Flask security已经内置了
/login
/logout
,我的登录功能基本上被忽略了。在正常的应用程序执行过程中没有使用它。除
url外,
的\u仍在处理中,因此生成错误

我试图用一个过时的例子,但失败了。3个月前更新了Flask安全性。操作参数应更新为('security.login')的
action=url\u
,它将正常工作


TL;DR添加
url\u前缀将不会使用Flask Security内置的
/login
/logout
,许多VAR被重命名

我知道这是一个老问题,但万一有人像我一样有这个问题,

你应该接受你的答案,即使是你自己的答案。这样,它在这里正确地显示为“已回答”,以此类推。
from flask import Blueprint, render_template, request, redirect, url_for
from coursly import app
from coursly.models import *
from flask.ext.security import Security, LoginForm, SQLAlchemyUserDatastore

user_datastore = SQLAlchemyUserDatastore(db, user.User, user.Role)
Security(app, user_datastore)

user = Blueprint('user', __name__)

@user.route('/')
def index():
    return redirect(url_for("user.login"))

@user.route('/login', methods=['GET', 'POST'])
def login():
    return render_template('user/login.html', content='Login Page', action=url_for('auth.authenticate'), form=LoginForm())