zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Flask路由

路由 Flask
2023-09-11 14:15:14 时间

路由

@app.route("/itcast")
def view_func():
    return "hello world"

1 查询路由信息

  • 命令行方式

    flask routes
    
    Endpoint  Methods  Rule
    --------  -------  -----------------------
    index     GET      /
    static    GET      /static/
    
  • 在程序中获取

    在应用中的url_map属性中保存着整个Flask应用的路由映射信息,可以通过读取这个属性获取路由信息

    print(app.url_map)
    

  • 如果想在程序中遍历路由信息,可以采用如下方式

    for rule in app.url_map.iter_rules():
        print('name={} path={}'.format(rule.endpoint, rule.rule))
    

需求

通过访问/地址,以json的方式返回应用内的所有路由信息  【用json返回字符串】

实现

from flask import Flask
import json

app = Flask(__name__)


@app.route('/')
def route_map():
    """
    主视图,返回所有视图网址
    """
    rules_iterator = app.url_map.iter_rules()
    return json.dumps({rule.endpoint: rule.rule for rule in rules_iterator})


app.run()

2 指定请求方式

在 Flask 中,定义路由其默认的请求方式为:

  • GET
  • OPTIONS(自带)    【简化版的GET请求,用于询问服务器接口信息。比如接口允许的请求方式、允许的请求源头域名】
  • HEAD(自带)   【简化版的GET请求。只返回GET请求处理时的响应头,不返回响应体】

利用methods参数可以自己指定一个接口的请求方式

from flask import Flask

app = Flask(__name__)


@app.route("/a", methods=["POST"])
def view_func_1():
    return "hello world 1"


@app.route("/b", methods=["GET", "POST"])
def view_func_2():
    return "hello world 2"


app.run()