• Flask


    1. 像snap一样阅后即焚,在服务器端临时存储数据的地方,如显示错误信息。(也可以用session实现)

    2. Flash的底层是session做的,所以要secret_key。可以看源码

    3. flash()存储数据,get_flashed_messages()获得数据

    例子1. flash向某个地方设置一个值,从某个地方获取设置过的所有值,并清除。

    from flask import Flask,flash,get_flashed_messages
    
    app = Flask(__name__)
    app.secret_key = 'asdfasdf'
    @app.route('/get')
    def get():
        # 从某个地方获取设置过的所有值,并清除。
        data = get_flashed_messages()
        print(data)
        return 'Hello World!'
    
    
    @app.route('/set')
    def set():
        # 向某个地方设置一个值
        flash('大家好!')
    
        return 'Hello World!'
    
    
    if __name__ == '__main__':
        app.run()
    

    127.0.0.1:5000/get
    127.0.0.1:5000/set
    127.0.0.1:5000/get

    例子2. 提高传输信息安全性。和可以分类,防止数据错乱。

    from flask import Flask,flash,get_flashed_messages,request,redirect
    
    app = Flask(__name__)
    app.secret_key = 'I am secret_key'
    
    
    @app.route('/')
    def index():
        # 从某个地方获取设置过的所有值,并清除。
        val = request.args.get('name')
        if val == 'allin':
            return 'Hello World!'
        #把数据分类,放到闪现里。
        flash('超时错误',category="x1")
        # 1.return redirect('/error?msg=超时错误'),和下面的2一起看。这样写可能会出现安全问题,因为固定死URL的参数了。所以用flash来解决。
        return redirect('/error')
    
    
    @app.route('/error')
    def error():
        """
        展示错误信息
        :return:
        """
        # 2. data = request.args.get('msg')
        #通过分类,只拿这一类数据
        data = get_flashed_messages(category_filter=['x1'])
        if data:
            msg = data[0]
        else:
            msg = "..."
        return "错误信息:%s" %(msg,)
    
    
    if __name__ == '__main__':
        app.run()
    

    http://127.0.0.1:5000/?name=allin

    例子3. 模板里遍历flash

    flasky中git reset --hard 4c

    模板base.html的某个block中

    {% for message in get_flashed_messages() %}
    

    后台代码

    flash('Looks like you have changed your name!')
    
  • 相关阅读:
    JAVA HttpsURLConnection 忽略对SSL valid 的验证
    IntellJ 13.x JPA Persistence Sample
    IntelliJ IDEA 13.x 下使用Hibernate + Spring MVC + JBoss 7.1.1
    Entity Framework + WCF REST JSON Service
    WCF Membership and Role Provider
    ASP.NET MVC 4 SimpleMembership Provider (1)
    Centos7下安装Nginx
    Centos7下部署docker
    centos 6.5将系统语言改为中文
    ensp配置DHCP实例
  • 原文地址:https://www.cnblogs.com/allen2333/p/9016805.html
Copyright © 2020-2023  润新知