Ram*_*avi 0 python api rest jinja2 flask
去年我用 Flask 开发了一个大网站。
我使用render_template方法从后端发送数据到前端和request.form从前端到后端获取数据
现在,我的产品负责人希望我使用“API”而不是上述解决方案。我对如何使用 API 感到非常困惑。
我应该删除任何 render_template 或 request.form 吗?
我应该完全改变我的后端和查看功能吗?
我可以只更改 render_template 和 request.form 而不更改其余代码吗?
使用API后可以使用Jinja模板吗?或者我应该使用javascript?
我以前的解决方案是这样的:
apps = apps_model.query.all ()
render_template ('index.html' , apps=apps)
Run Code Online (Sandbox Code Playgroud)
和:
user_name = request.form ['username']
Run Code Online (Sandbox Code Playgroud)
我的产品负责人希望我使用“API”而不是上述解决方案
我对此的理解意味着您的产品经理希望您将后端与前端分开。简而言之,您应该创建一个 [RESTful] API。本质上,您不必使用render_template处理和解析 HTML 模板并将其显示给最终用户。
您的新 API 应返回 JSON 对象,然后从客户端(即网站)调用 API 以创建、更新、检索和删除数据库中的数据,然后将信息返回给客户端。
from flask import Flask, jsonify
app = Flask(__name__)
app.route("/", methods=["GET"])
def index():
api_response = {
"status": "success",
"message": "Welcome to our API"
}
return jsonify(api_response)
Run Code Online (Sandbox Code Playgroud)
我应该删除任何 render_template 或 request.form 吗?
您将不再需要render_template,因为您不会显示或返回 HTML 页面。但是,request.form仍然可以用于从客户端收集数据。完全取决于您希望客户端如何与您的 API 通信
我应该完全改变我的后端和查看功能吗?
仅更改/创建视图函数以返回特定数据。
示例案例:
获取所有用户:创建路由 /api/users
获取用户 A:创建路由 /api/users/user_a
我可以只更改 render_template 和 request.form 而不更改其余代码吗?
不。
使用API后可以使用Jinja模板吗?或者我应该使用javascript?
非常不可能。您将不再渲染模板。我应该使用 Javascript 吗?当然,对于您的客户端。
见https://www.restapitutorial.com
| 归档时间: |
|
| 查看次数: |
2260 次 |
| 最近记录: |