python - Flask API - 列出所有添加的资源
问题描述
我使用 Flask 创建了一个简单的 API,我的问题是如何让它列出它已分配的所有资源或端点
from flask import Flask, request
from flask_restful import Resource, Api
from sqlalchemy import create_engine
from json import dumps
import os, random
app = Flask(__name__)
api = Api(app)
class cuddle(Resource):
def get(self):
file = random.choice(os.listdir("/path/to/dir/of/images"))
out = "https://example.com/path/" + file
return out
api.add_resource(cuddle, '/api/cuddle')
if __name__ == '__main__':
app.run(host="0.0.0.0", port=33, debug=True)
我希望能够去example.com/api/endpoints
并让它列出所有可用的端点,例如在片段中cuddle
解决方案
您可以使用 app.url_map.iter_values()
下面是一个例子
@app.route('/')
def hi():
return 'Hello World!'
@app.route('/hi')
def hi():
return 'Hi!'
@app.route('/hello')
def hello():
return 'Hello World!'
def routes():
routes = []
for route in app.url_map.iter_rules():
routes.append('%s' % route)
print(routes)
['/你好', '/']
推荐阅读
- wso2 - 在 wso2 apim 中安装功能
- python - python - selenium 给出错误 geckodriver 需要在 PATH 中(即使它是)
- html - 在一个文件中多次使用 CSS 类
- kubernetes - Kubernetes 管理多个应用程序的 Pod 副本之间的流量
- jquery - Jquery:查找和替换文本
- ssh - “输入的 MAC 损坏。” 当从 VirtualBox/Ubuntu 在 VPN 上通过 SSH 进行 git 克隆时
- c++ - 为什么我用于在堆栈中打印最大元素的 C++ 代码没有产生正确的输出?
- kentico - Kentico 12 智能搜索页面爬虫索引不起作用
- python-3.x - 在python中设置变量时,为什么顺序很重要?
- python-3.x - Python 代码仅删除引号内的句点