ayr*_*nna 3 python flask flask-login
我是 Flask 和 python 的新手,我正在尝试添加所需的登录以及除主页之外的所有路由。我读过有关 Flask-login 模块的内容,但没有取得任何成功。寻找建议!
我尝试使用 Flask-login 并阻止访问“/data”路径。它不起作用。我的登录要求很简单,如果用户密码是admin/admin则允许登录。并确保用户已登录以访问所有后续路由。
这是我的烧瓶代码
from flask import Flask, render_template, redirect, url_for, request
import subprocess
import os
import datetime
import time
app = Flask(__name__)
@app.route("/")
def home():
now = datetime.datetime.now()
timeString = now.strftime("%Y-%m-%d %H:%M")
templateData = {
'title' : 'HELLO!',
'time': timeString
}
return render_template('main.html', **templateData)
@app.route('/login', methods=['GET', 'POST'])
def login():
error = None
if request.method == 'POST':
if request.form['username'] != 'admin' or request.form['password'] != 'admin':
error = 'Invalid Credentials. Please try again.'
else:
return redirect(url_for('data'))
return render_template('login.html', error=error)
@app.route("/data")
def data():
now = datetime.datetime.now()
timeString = now.strftime("%Y-%m-%d %H:%M")
templateData = {
'title' : 'HELLO!',
'time': timeString
}
return render_template('api.html', **templateData)
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)
Run Code Online (Sandbox Code Playgroud)
我不希望在没有以 admin/admin 身份登录的情况下访问 /data 路由
flask_login应该可以解决问题。
@login_required在您希望当前未登录的用户无法使用的任何路线上使用装饰器。
from flask_login import login_required
@app.route("/data")
@login_required
def data():
...
...
Run Code Online (Sandbox Code Playgroud)
Flask 的首选会话管理扩展是session. 对于这个例子,你需要一个密钥......
import secrets
app = Flask(__name__)
app.config['SECRET_KEY'] = secrets.token_hex(16)
Run Code Online (Sandbox Code Playgroud)
以及烧瓶管理的示例用法session......
from flask import session
@app.route('/login', methods=['GET', 'POST'])
def login():
error = None
if request.method == 'POST':
if request.form['username'] != 'admin' or request.form['password'] != 'admin':
error = 'Invalid Credentials. Please try again.'
else:
session['logged_in'] = True
return redirect(url_for('data'))
return render_template('login.html', error=error)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3310 次 |
| 最近记录: |