from flask import Flask, render_template, request, Response, redirect, session, url_for app = Flask(__name__) # app.debug = True # 自动重启功能 app.config.from_object("settings.DevelopmentConfig") USRS = { 1: {"name": "张三", "age": 18, 'gender': '男'}, 2: {"name": "张三", "age": 18, 'gender': '男'}, 3: {"name": "张三", "age": 18, 'gender': '男'}, 4: {"name": "张三", "age": 18, 'gender': '男'} } """ redirect_to="/", 重定向到另一个页面 subdomain="admin" 子域名 请求相关的全部在request """ import functools def wapper(func): @functools.wraps(func) # 设置函数的元信息 def inner(*args, **kwargs): user = session.get('user_info') # if not user if user is None: return redirect("/login") return func(*args, **kwargs) return inner @app.route('/detail/<int:nid>', methods=['GET', 'POST'], redirect_to="/", subdomain="admin") # 重定向 @wapper def detail(nid): print(nid) info = USRS.get(nid) return render_template('detail.html', info=info) pass @app.route('/index', methods=['GET', 'POST']) @wapper def index(): user = session.get('user_info') if user is None: url = url_for('l1') # 反向生成 return redirect(url) return render_template('index.html', user_dict=USRS) @app.route('/login', methods=['GET', 'POST'], endpoint=l1) def login(): if request.method == "GET": return render_template('login.html') else: # request.query_string usename = request.form.get('username') password = request.form.get("password") if usename == 'alex' and password == "123": # 记录用户登录 session['user_info'] = usename return redirect('/index') return render_template('login.html ', error="用户名或者密码错误") if __name__ == '__main__': app.run() # 装饰器(检验用户认证)
Python之Flask登录认证--装饰器
最新推荐文章于 2024-04-26 13:46:40 发布