zoukankan      html  css  js  c++  java
  • 11content_processor

    1,content_processor

    • 上下文处理器应该返回一个字典,字典中的key会被模板中当成变量来渲染
    • 上下文处理器返回的字典,在所有页面中都是可以使用的
    • 被这个装饰器修饰的钩子函数,必须要返回一个字典,即使为空也要返回

    登陆的时候才会显示用户名。

    from flask import Flask,render_template,g,url_for,request,redirect,session
    import os
    app = Flask(__name__)
    app.config['SECRET_KEY'] = os.urandom(24)
    
    @app.route('/')
    def hello_world():
        # print("index")
        return 'index!'
    
    @app.route('/login/' ,methods=['GET','POST'])
    def login():
        # print("login")
        if request.method == "GET":
            return render_template('login.html')
        else:
            username = request.form.get('username')
            password = request.form.get('password')
            if username == "1" and password == "1":
                session['username'] = "1"
                return 'Success to login in!'
            else:
                return redirect(url_for('login'))
    
    @app.route('/edit/')
    def edit():
        ##1和 #2都是一样的意思,但是1更方便,hasattr() 函数用于判断对象是否包含对应的属性。
        if hasattr(g,'username'):  #1
        # if session.get('username') == "1":  #2
            return render_template('edit.html')
        else:
            return redirect(url_for('login'))
    
    # before_request:在请求之前执行的,在视图函数执行之前执行的。
    # before_request只是一个装饰器,他可把要设置为钩子函数的代码放到视图函数执行之前来执行。
    @app.before_request
    def my_before_request():
        print('hw')
        # 有username证明用户是登陆状态
        if session.get('username'):
            g.username = session.get('username')  #g?
    # 相当于在每一个视图函数(如‘/’,/login/执行前都会执行这个函数。)
    
    @app.context_processor
    def mycp():
        return {"username":"1"}
    if __name__ == '__main__':
        app.run()
  • 相关阅读:
    PAT 甲级 1132 Cut Integer (20 分)
    AcWing 7.混合背包问题
    AcWing 9. 分组背包问题
    AcWing 5. 多重背包问题 II
    AcWing 3. 完全背包问题
    AcWing 4. 多重背包问题
    AcWing 2. 01背包问题
    AcWing 875. 快速幂
    AcWing 874. 筛法求欧拉函数
    AcWing 873. 欧拉函数
  • 原文地址:https://www.cnblogs.com/two-peanuts/p/10948607.html
Copyright © 2011-2022 走看看