Sto scrivendo una piccola API e volevo stampare un elenco di tutti i metodi disponibili insieme al corrispondente" testo di aiuto "(dalla docstring della funzione). Partendo da this answer, ho scritto il seguente:Elenca tutti i percorsi disponibili in Flask, insieme alle corrispondenti funzioni "docstrings
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api', methods = ['GET'])
def this_func():
"""This is a function. It does nothing."""
return jsonify({ 'result': '' })
@app.route('/api/help', methods = ['GET'])
"""Print available functions."""
func_list = {}
for rule in app.url_map.iter_rule():
if rule.endpoint != 'static':
func_list[rule.rule] = eval(rule.endpoint).__doc__
return jsonify(func_list)
if __name__ == '__main__':
app.run(debug=True)
c'è un meglio-più sicuro - modo di fare questo? Grazie.
Perché ' "% s" % rule.endpoint' invece di' rule.endpoint' o forse 'str (rule.endpoint)'? –
Hai ragione: anche 'rule.endpoint' funziona. Grazie. Modificherà l'esempio sopra. – iandexter