路由
2 指定请求方式
@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()

在 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()