from flask import Flask, jsonify, request
app = Flask(__name__)
# 定义路由和视图函数
@app.route('/')
def index():
return '<h1> Hello World!</h1>'
@app.route('/personal/<id>')
def personal(id):
return "个人中心的ID:%s" % id
@app.route('/book/list')
def book_list():
page = request.args.get("page", default=1, type=int)
return f"您获取的是第{page}的图书列表!"
# 定义一个新路由来获取所有路由信息
@app.route('/get_routes')
def get_routes():
routes_response = []
for rule in app.url_map.iter_rules():
# 过滤掉不需要显示的规则,例如静态文件路由
if rule.endpoint != 'static':
routes_response.append({
'rule': rule.rule,
'endpoint': rule.endpoint,
'methods': list(rule.methods)
})
return jsonify(routes_response)
if __name__ == '__main__':
app.run(debug=True)
@app.route('/get_routes')
:定义了一个新路由,用于返回应用中所有路由的信息。- 使用
app.url_map.iter_rules()
遍历所有路由规则。 - 对于每个规则,如果它的端点不是
static
(即不是用于服务静态文件的路由),则将其规则、端点和支持的方法添加到routes_response
列表中。 - 使用
jsonify
将routes_response
列表转换为JSON格式的响应,并返回。