• Flask -- 路由,初始化配置,config,蓝图,特殊装饰器


    flask基础

    1.Flask中的路由(route)

    endpoint 映射路由-视图函数name = "" methods = ["get","Post"] 当前视图函数支持的请求方法 ,如果请求方法不再其内,会405, 请求方式不被允许 defaults = {"id":1} 默认参数 一旦默认参数存在 视图函数中必须有一个形参去接收 形参变量名必须与 defaults 中的一致 strict_slashes=True 是否严格遵循路由匹配规则 "/" redirect_to = "/login" # 永久重定向 301 308 不经过视图函数的 动态参数路由 /detail/<folder>/<filename>

     

    2.Flask中的配置

    1.初始化配置
    app = Flask(__name__)
    template_folder="templatess"     # 更改模板存放目录 默认值是 templates
    static_folder="statics",                 # 静态文件存放路径
    static_url_path="/static"               # 静态文件访问路径 - 默认是 "/"+static_folder

     

    区分 static_folder 和 static_url_path 之间的关系,
    个人理解:当静态文件存放路径发生改变时,静态文件访问路径(static_url_path)也发生改变,但是前端拥有大量之前的访问路径,为了避免频繁的修改前端访问路径,可以将 static_url_path 设为之前的访问路径

    2.Config 对象配置 app.default_config DEBUG --- 编码阶段 代码重启 日志输出级别很低 页面中会显示错误 错误代码

        TESTING --- 测试阶段    日志输出级别较高  无限接近线上环境

    如何实现debug模式和testing模式的快速切换?
    1.新建一个.py文件
    2.写如下代码
            class DebugSetting(object):
    DEBUG = True
    SECRET_KEY = "123456789"
    SESSION_COOKIE_NAME = "I am just Session"
    IAMXIAOHEI = "DSB"
    S20 = "NB"
    SESSION_TYPE = 'Redis'
            class   TestingSetting(object):
    ......
    3.在app主文件内调用
    app.config.from_object(DebugSetting)
    app.config.from_object(TestingSetting)

     

    3.Flask 蓝图 Blueprint

    特点:
    1.当成是一个不能够被run的Flask对象
    2.蓝图中是不存在Config
    3.蓝图需要注册在 app 实例上的 app.register_blueprint(Blueprint实例)
    4.在蓝图中登录,写入session,在其他蓝图中也可以调用,用来做是否登录验证
    5.url_prefix = '' --->url前缀,添加此功能可以防止蓝图之间搞混 (但一般用的不多)

     

    简单小模板:
    from flask import Blueprint,render_template

    index = Blueprint('index',__name__)         #'index'为蓝图唯一标识,不能跟别处重复

    @index.route('/l_index')                         #注意:此处的路径不能跟你蓝图唯一标识一样好
    def l_index():
    return render_template('index.html')

    4.Flask 特殊装饰器

    1.before_request 请求进入进入视图函数之前进行处理 return None 继续执行 否则阻断
    2.after_request 视图函数结束 响应客户端之前
    正常周期: be1 - be2 - be3 - vf - af3 - af2 - af1
    异常周期: be1 - af3 - af2 - af1

    3.errorhandler 重定义错误信息
    3.1.有参数的装饰器errorhandler(监听错误状态码 5xx 4xx Int)
    3.2.所装饰的函数必须有一个形参来接受 errorMessage

     

  • 相关阅读:
    通过修改配置文件修改MySQL的时区设置
    五子棋输赢判定算法
    windows下通过压缩包安装MySQL
    systemctl命令详解
    普通用户从其他主机连接MySQL数据库
    ubuntu普通用户使用wireshark的权限问题
    账号管理文件/etc/passwd和/etc/shadow
    为什么处理有序数组比无序数组快?
    一些图像处理函数用法
    基于C++求两个数的最大公约数最小公倍数
  • 原文地址:https://www.cnblogs.com/jingzu/p/11354803.html
Copyright © 2020-2023  润新知