zoukankan      html  css  js  c++  java
  • 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}页面不存在"
    
  • 相关阅读:
    1063. Set Similarity
    A1047. Student List for Course
    A1039. Course List for Student
    最大公约数、素数、分数运算、超长整数计算总结
    A1024. Palindromic Number
    A1023. Have Fun with Numbers
    A1059. Prime Factors
    A1096. Consecutive Factors
    A1078. Hashing
    A1015. Reversible Primes
  • 原文地址:https://www.cnblogs.com/straightup/p/13709073.html
Copyright © 2011-2022 走看看