• Flask学习Ⅱ


    Flask 中的路由

    @app.route("/login",methods=['GET','POST']...)

    #路由中的参数
    endpoint 不能重复 对应视图函数 默认是视图函数名  #路由和视图函数之间的桥梁
    
    methods  #允许请求的方式 ["GET","POST","DELETE","PUT"]
    
    redirect_to  #永久重定向 没有进入视图层面直接跳转
    
    strict_slashes  #是否严格要求路由匹配
    
    defaults={"nid":"xxx"}  #默认参数 def视图函数(nid)要接收参数
    
    **动态参数路由
    应用场景:利用send_file限定返回文件
    @app.route("/look/<images>/<picture>")
    def look(images,picture) #函数要接收动态函数
    ...
    

    Flask 初始化(实例化)参数

    static_folder  	 #静态文件存放路径
    static_url_path	 #静态文件访问路径(默认值为"/{static_folder}")
    template_folder	 #模板存放路径
    static_host		 #静态文件访问服务HOST -> 指向到另一台服务器
    
    • static_folder和static_url_path的关系:
    1.默认情况下访问路径是 /存放路径
    2.存放路径和访问路径可以不同
    3.url中只需要对上访问路径,对上了访问路径,会自动去存放路径寻找文件
    如:
       # image目录下存放一个img.jpg文件
       static_folder = "image"  
       static_url_path = "/static"
       访问 http://127.0.0.1:5000/static/img.jpg  #自动找到image目录下的img.jpg文件
    

    Flask 对象配置

    #查看默认配置
    app.default_config
    #两个模式:
    DEBUG模式 开启编辑时代码自动重启 Log打印级别最低 错误信息透传
    TESTING模式 无限接近生产环境 不会开启代码编辑重启 Log级别较高 错误信息不再透传
    #一个坑:
    SESSION_COOKIE_NAME #设置存放在浏览器cookie中session的名称,但第一个字符绝对不能是空格!
    
    • Flask Config 快速配置
    #自定义一个xx.py文件,创建两个类(DEBUG,TESTING)
    #分别在每个类中写入配置的内容(全部大写)
    class DebugConfig:
        DEBUG = True
        secret_key = "%(($%^#"
        ...
    class TestingConfig:
        TESTING = True
        secret_key = "(*&^&^%$"
        ...
    # 回到app所在文件中,导入上述两个类
    # config.from_object快速配置
    from xx.py import DebugConfig,TestingConfig
    app.config.from_object(DebugConfig)
    

    Flask 中的蓝图 Blueprint

    • 相当于Django的app01
    • 不能run的flask实例
    • 作用:功能隔离 路由隔离
    # 步骤
    # 新建蓝图文件
    from flask import Blueprint
    bp = Blueprint("蓝图唯一名称",__name__)
    		
    @bp.route("/路由",url_prefix="/url前缀")
    def bp_idnex():
        ...
    
    # app所在文件
    from xx import 蓝图对象
    app.register_blueprint(蓝图对象)
    
    #几点注意事项:
    1.url_prefix url前缀(用于隔离不同蓝图相同的url)
    2.同一app下蓝图名称必须唯一
    3.在Flask实例中必须注册蓝图!!!(app.register_blueprint())
    

    Flask 特殊装饰器

    @app.before_request		# 请求进入视图函数之前	
    @app.after_request   	# 请求结束,返回响应之前
    正常: be1 - be2 - be3 - vf - af3 - af2 - af1
    异常: be1 - be2 - af3 - af2 - af1(并不是对应的)
    
    @app.errorhandler(4xx or 5xx)	# 重定义错误信息
    @app.errorhandler(404)
    def error404(ErrorMessage):
    	print(ErrorMessage)
    	return f"你访问的{request.path}页面不存在"
    
  • 相关阅读:
    ThinkPhp6.x+AntDesign+Vue前后端分离快速开发平台
    Laravel8.x+AntDesign+Vue前后端分离快速开发平台
    JavaWeb v1.0.0后台开发框架,专业版发布——细节完善,体验优化
    高并发情况下的DB重复插入解决方案随笔
    jQuery.qrcode.js客户端生成二维码,支持中文并且可以生成LOGO
    新能源车牌的问题
    OCR识别移动端的实现与应用
    在拥有vin码识别的时代,您还在傻乎乎手工录入吗?
    国内的车牌识别算法怎样选择
    一码在手运车无忧
  • 原文地址:https://www.cnblogs.com/straightup/p/13709073.html
Copyright © 2020-2023  润新知