我正在制作一个网络应用程序,并且我已经使用Flask-Login处理登录的以下代码(为简洁而编辑):
from flask_login import LoginManager, login_user, logout_user, login_required
login_manager = LoginManager()
login_manager.init_app(app)
@login_manager.user_loader
def load_user(user_id):
return User.query.filter_by(user_id=user_id).first()
@app.route('/')
@login_required
def home():
return user.first_name
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
try:
email = request.form.get("email")
user = User.query.filter(User.email == email).first()
if user.is_correct_password(request.form.get("password")):
login_user(user)
return redirect(url_for("home"))
else:
return error("Login Failed")
except:
return error("Unable to log in.")
else:
return render_template("login.html")
但是,我一直得到NameError: global name 'user' is not defined
,即使我确定我已定义user
因为我能够通过@login_required
。 (当我退出并尝试访问主页时,我被告知我未经授权)。
我很感激我能得到的任何帮助。
非常感谢!
答案 0 :(得分:2)
您的program test_func_array
implicit none
type pp
procedure(func) ,pointer ,nopass :: f =>null()
end type pp
interface
function func(x)
real :: func
real, intent (in) :: x
end function func
end interface
type(pp) :: func_array(4)
func_array(1)%f => exp
func_array(2)%f => tan
func_array(3)%f => cos
func_array(4)%f => sin
print*,func_array(1)%f(1.)
print*,func_array(2)%f(1.)
print*,func_array(3)%f(0.)
print*,func_array(4)%f(0.)
end program test_func_array
视图存在问题:home
未定义。我认为您打算使用Flask-Login user
。
current_user
答案 1 :(得分:0)
不要忘记导入
从flask_login导入current_user
from flask_login import current_user
@app.route('/', methods = ['POST', 'GET'])
@app.route('/index', methods = ['POST', 'GET'])
@login_required
def index():
return render_template('index.html',user={"id":current_user.id, "name": current_user.name, "password":current_user.password})
并在模板上访问
{% if user %}
<h3>Greetings {{user}}</h3>
{% endif %}
<table class="table table-striped" >
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Value</th>
</tr>
</thead>
<tbody>
{% for key, value in user.items() %}
<tr>
<th scope="row">{{ key }}</th>
<td>{{ value }}</td>
</tr>
{% endfor %}
</tbody>
</table>