在我正在处理的Web应用程序(Flask)中,我有渲染html的路由,对于该页面的客户端JS应用程序,我有返回json数据的路由。
我无法为这种情况设计网址。例如,如果我点击汽车的模型(应用程序是关于汽车)我需要渲染显示模型细节的页面,但同时我需要获取模型的数据及其所有不同的变体好。到目前为止,我有:
@app.route("/model/<oid>")
def model_page(oid):
return render_template('model-details.html')
我渲染此页面,然后在客户端的JS应用程序中获取oid
。然后我对另一个方法(如
@app.route("/model/details/<oid>")
def model_details(oid):
m = get_model(oid)
return json.dumps({'model': m})
我觉得这样做是错误的,因为基本上第一个方法应该返回我想要的数据(遵循REST原则)。如果我这样做了,我的页面网址就会搞砸(对我来说,为网页设置一个好的网址让我的用户直接访问它是很重要的。)
如何清晰地将页面呈现网址与“数据返回”相对应?网址?
答案 0 :(得分:0)
不是烧瓶专家,但我想你可以将变量传递到包含模型细节的模板中。这样做可以完全摆脱第二次通话的需要。您的控制器能以某种方式获取详细信息并将其传递出去吗?
@app.route("/model/<oid>")
def model_page(oid):
m = get_model(oid)
return render_template('model-details.html', model=m)
您可能必须将您的模型作为json发送,但此模式适用于此情况。