gpt4 book ai didi

python - 在单个 View 方法中接受多种请求类型的更好方法?

转载 作者:太空狗 更新时间:2023-10-29 17:58:04 25 4
gpt4 key购买 nike

我正在尝试向各种请求方法(GET、url x-www-form-urlencoded POST 和 json POST)公开 API:

@app.route('/create', methods=['GET', 'POST'])
def create_file():
if request.method == 'GET':
n = request.args.get('n')
t = request.args.get('t')
if request.method == 'POST':
if request.json:
n = request.json['n']
t = request.json['t']
else:
n = request.form['n']
t = request.form['t']
try:
n = int(n)
except:
n = 1
...

以上内容显得过于冗长。有没有更简单或更好的写法?谢谢。

最佳答案

这样看起来更好吗?在我看来,如果您可以接受将 JSON POST 请求移动到不同的路由(无论如何您确实应该这样做),它会更简洁一些。

def _create_file(n, t):
try:
n = int(n)
except:
n = 1
...

@app.route('/create')
def create_file():
n = request.args.get('n')
t = request.args.get('t')
return _create_file(n, t)

@app.route('/create', methods = ['POST'])
def create_file_form():
n = request.form.get('n')
t = request.form.get('t')
return _create_file(n, t)

@app.route('/api/create', methods = ['POST'])
def create_file_json():
if not request.json:
abort(400); # bad request
n = request.json.get('n')
t = request.json.get('t')
return _create_file(n, t)

关于python - 在单个 View 方法中接受多种请求类型的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17716436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com