编辑:嗨,我检查了这个问题的重复项,他们没有询问 SPA(客户端与服务器渲染)
我正在尝试将我的 Flask Web 应用程序更改为在 JS 中呈现客户端,而不是使用 Jinja 模板呈现在服务器端。一位面试官告诉我,我的 Flask Web 应用程序的问题在于,应用程序服务器通常应该只提供纯 Json API,而不是尝试呈现任何现有的静态内容(例如不会改变的网站内容、主题、css 、logos、图片等),因为这会浪费应用服务器的计算资源。
关于我的网络应用程序,它的作用是调用 2 个不同的 API,并根据用户输入(例如您的居住地)为您返回可用的停车场地段
我已经对使用 AJAX 和 Flask 进行了一些研究。似乎使用 XMLHttpRequest基于https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started是要走的路。根据我有限的理解,如果正确实施,是否可以将我的 Web 应用程序转换为基本上复制 SPA 功能的应用程序?(无页面刷新,客户端渲染)
目前正在努力实施,任何帮助都会很棒!
下面的 .py 脚本
# one of Four routes in my "Main" Flask Script
@app.route('/address',methods = ['POST', 'GET'])
def address1():
if request.method == 'POST':
desired_CP_Address = request.form["address"]
response = requests.get("https://data.gov.sg/api/action/datastore_search?resource_id=139a3035-e624-4f56-b63f-89ae28d4ae4c&q=" + desired_CP_Address)
r = response.json()
CP_Info = r['result']['records']
return render_template("address1.html", text=CP_Info)
生成的 html 页面的片段
<body>
<h1>carpark.py</h1>
<!-- if invalid input display bottom -->
{% if text %}
<h3>Click on your desired carpark number</h3>
<hr>
{% for x in text %}
<p>{{ x["address"] }} : <strong><a href="">{{ x["car_park_no"] }}</a></strong> </p>
{% endfor %}