zoukankan      html  css  js  c++  java
  • 8. Flask中闪现

    一、基本原理

    # 首先要导入flash 和 get_flashed_messages
    from flask import Flask, flash, get_flashed_messages
    
    app = Flask(__name__)
    app.secret_key = "1234"
    
    
    @app.route("/get")
    def get():
        # 2.从某个地方获取设置过的所有值,并清除。 类似于pop
        # 第一次运行可以获取到所有的设置的值;第二次运行就清除掉了所有的设置的值
        data = get_flashed_messages()
        print(data)
        return "hello World"
    
    
    @app.route("/set")
    def set():
        # 1. 向某个地方设置一个值
        flash("军人")
        return "Hello army"
    
    
    if __name__ == "__main__":
        app.run()
    
    

    二、基本使用

    ​ 其实,它就是通过session做的,先把数据存在session里,数据如果在session里,只要不删,就永远在。然后,如果值被拿走,就会通过session.pop()的方式给拿走。所以,就不用担心数据错乱。因为每个用户都会有自己的一个session,基于session就会把数据隔离开了。对临时数据操作,如:显示错误信息;比如:假设在A页面做个操作,但该操作失败了,要跳转到B页面并显示这些错误信息

    from flask import Flask, flash, get_flashed_messages, request, redirect
    
    app = Flask(__name__)
    app.debug = True
    app.secret_key = "1234"
    
    
    @app.route("/index")
    def index():
        # get请求用request.args.get, v是接受参数的变量
        # 浏览器请求:
        val = request.args.get('v')
        if val == "body":
            return "hello World, guys"
        # 如果请求参数不是body,则跳转到错误页面,需要将错误信息flash,也就是设置错误值到某个地方
        # A.flash不分类,直接设置值
        flash("前端输入参数错误")
        # B.flash还可以对错误信息,进行分类
        flash("前端输入参数错误", category="x1")
        return redirect("/error")
    
    
    @app.route("/error")
    def error():
        '''
        显示错误信息
        '''
        # 跳转到error页面后,请求时获取错误信息
        # A.flash没有分类时
        # data = get_flashed_messages()   # 获取的就是flash的值
        # B. 对于有分类的,取值时可以通过 category_filter 根据分类取错误信息
        data = get_flashed_messages(category_filter=['x1'])
        # 可能有很多的错误信息,也可以按照索引的方式取出错误值
        if data:
            msg = data[0]
        else:
            msg = "..."
        return "错误信息:%s" % (msg)
    
    
    if __name__ == "__main__":
        app.run()
    
    
  • 相关阅读:
    [1041] XX easy problem
    [1027] 火焰纹章
    省赛选拔赛解题报告
    二维DP hdu 1421 搬寝室问题
    最长斐波那契子序列选取(离散化 + 二分 + DP)
    两个有序链表合成一个有序链表
    CodeForce 608B Hamming Distance Sum
    CodeForce 607A&&608C Chain Reaction
    (DP)最大价值事件序列选取
    面向对象>>>抽象类>>>鸭子类型>>>封装
  • 原文地址:https://www.cnblogs.com/hq82/p/12641938.html
Copyright © 2011-2022 走看看