gpt4 book ai didi

python - 使用 FLASK 将 REST API 与 Web 界面结合的最佳实践

转载 作者:太空狗 更新时间:2023-10-30 02:46:24 24 4
gpt4 key购买 nike

我目前使用 flask、sqlalchemy 和 jinja2 构建了一个网络应用程序。

为了获得合适的 Web 界面,我按如下方式构建 View :

@app.route('/mydata/', methods=['GET'])
@login_required
def mydata_list():
# build data here...
return render_template('mydata/index.html', data=data))

现在,如果我需要构建一个 REST API,我应该终止

return jsonify(data)

那么,如何处理这个以避免代码重复呢?将 ?api=True 添加到我的 url,在我的 View 中对其进行测试,然后返回适当的答案是否是一个好习惯?

最佳答案

确实没有正确或错误的方法来做到这一点,Flask 更是如此,这是一个对开发人员施加很少规则的框架。

如果你想要我的意见,我认为对网站和 API 使用相同的 View 函数集会导致代码更难维护,因为两者之间存在一些显着差异,例如:

  • 身份验证:对于 Web 和 API,这通常以非常不同的方式完成。
  • 内容:对于 API,您只需返回数据,但对于网页, View 函数可能需要做更多工作并获取仅用于呈现模板所需的额外数据。
  • 请求方法:API 使用的 HTTP 请求方法多于网络应用。例如,要通过 API 删除资源,客户端通常会发送 DELETE 请求。在 Web 浏览器上运行的 Web 应用程序需要通过 GETPOST 请求完成所有操作。此外,POST 请求方法在 API 和网络应用中有不同的用法。

我的建议是让 API 和 Web 应用程序的 View 函数都非常精简,并将应用程序的业务逻辑放在两组 View 函数都可以调用的公共(public)类中。

关于python - 使用 FLASK 将 REST API 与 Web 界面结合的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20798582/

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