Es gibt Unterstützung URL Teile in Python Variablen zu bekommen, aber AFAIK nicht mit Abfrageparametern funktioniert, müssen Sie request.args dafür verwenden.
from flask import request
@app.route(version + 'perms', methods=['GET'])
def get_perm():
arg1 = request.args.get('arg1')
arg2 = request.args.get('arg2')
Wenn das, was Sie extrahieren möchten ist keine Abfrageparameter (dh es ist nicht nach dem in der URL?), So etwas wie dies funktionieren würde (direkt aus der Flasche Dokumentation kopiert - http://flask.pocoo.org/docs/0.11/quickstart/#routing)
@app.route('/post/<int:post_id>')
def show_post(post_id):
# show the post with the given id, the id is an integer
return 'Post %d' % post_id
Ich bin mir nicht sicher, was Sie mit "Aufruf ohne Webpart" meinen - möchten Sie es aus anderen Python-Code aufrufen, z aus einem Batch-Job? Ich glaube, ich würde so etwas tun:
from flask import request
@app.route(version + 'perms', methods=['GET'])
def get_perm_ws():
arg1 = request.args.get('arg1')
arg2 = request.args.get('arg2')
return get_perm(arg1, arg2)
def get_perm(arg1, arg2):
pass # your implementation here
Eine weitere Alternative (wenn Sie nicht die Anforderungsparameter irgendwo sonst in der URL setzen können) wäre ein Funktionsparameter mit Standardwert sein. Beachten Sie, dass Sie hier etwas Unveränderliches verwenden sollten oder dass Sie nach Problemen fragen (ein veränderbares Standardargument kann geändert werden, und der geänderte Wert wird ab diesem Zeitpunkt als Standard verwendet).
@app.route(version + 'perms', methods=['GET'])
def get_perm(params = None):
if params == None:
params = request.params
# your code here
Ja, ich möchte diese Funktion von einem anderen Python-Code aufrufen. Ja, ich kannte schon request.args.get(). Ja der letzte Punkt sollte mir helfen, danke für die Hilfe! Ich hätte darüber nachdenken sollen:/ –
Tatsächlich verwalte ich den Fall bereits, wenn meine Parameter null (None) sind. In diesen Fällen verwende ich einen Standardwert :) –
Entschuldigung für die Verwirrung der Kommentare, ich konnte den Python-Code nicht in die Kommentare einfügen, also habe ich ihn an meine Antwort angehängt –