Skip to content

Latest commit

 

History

History
129 lines (88 loc) · 2.85 KB

500-820498-蓝图_动态分配路由_路由到不同的py文件.sy.md

File metadata and controls

129 lines (88 loc) · 2.85 KB
show version enable_checker
step
1.0
true

flask 最小应用

回忆上次

  • 上次了解到了
    • 路由的方法
  • 用装饰器 声明url
    • 在将路由封装成函数
  • 声明url的时候可以使用变量
    • 然后将变量传入函数参数进行处理

图片描述

  • 一个大型应用可能有各种类型需要处理的url
    • 都需要放在同一个hello.py中处理吗?
    • 那hello.py会不会太长了
  • 可以将网址
    • 路由到 另一个py文件
    • 进行处理吗?🤔

reply.py

  • 在项目的根目录下
    • 建立reply.py
  • reply.py
    • 可以处理/reply路径
from flask import Blueprint

app_reply = Blueprint("reply", __name__)

@app_reply.route('/reply')
def reply():
    return 'oeasy redirects here o'

app.py

  • app.py
    • 是主程序
from flask import Flask
from markupsafe import escape
from reply import app_reply

app = Flask(__name__)
app.register_blueprint(app_reply)

if __name__ == "__main__":
    app.run(debug=True)
  • 在主程序的应用(app)中
    • 注册了一个蓝图(blue_print)

图片描述

  • 将reply.py中的路由
    • 作为 蓝图 注册到了
    • app.py中

最终效果

  • 最终实现了
    • 动态分配路由的效果

图片描述

  • 所有处理文件
    • 都位于项目根目录
    • 还是很杂乱
  • 可以将 处理文件放在
    • 不同的 文件夹底下吗?

使用路径

图片描述

  • 在项目根下建立文件夹path

图片描述

  • 将reply.py移动到path下面

修改app.py

  • 修改app.py如下图所示

图片描述

  • 最终效果

图片描述

观察映射 过程

图片描述

  • 子路由 也被添加到了 规则中

图片描述

总结

  • 这次 实现了
    • 动态 分配路由的 效果
  • 可以 把路由工作
    • 动态地 分配给不同的文件 来处理
    • 这样就 可以实现 模块封装 了
      • 不同模块的 py文件
      • 放到不同的 文件夹
  • 路由规则中
    • 始终有一个
    • 映射到static文件夹的
    • 路由

图片描述

  • 这如何理解?🤔
  • 下次再说!👋