如何正确设计页面和数据的URL

时间:2014-11-18 00:33:15

标签: python ajax rest flask

在我正在处理的Web应用程序(Flask)中,我有渲染html的路由,对于该页面的客户端JS应用程序,我有返回json数据的路由。

我无法为这种情况设计网址。例如,如果我点击汽车的模型(应用程序是关于汽车)我需要渲染显示模型细节的页面,但同时我需要获取模型的数据及其所有不同的变体好。到目前为止,我有:

@app.route("/model/<oid>")
def model_page(oid):
    return render_template('model-details.html')

我渲染此页面,然后在客户端的JS应用程序中获取oid。然后我对另一个方法(如

)进行ajax调用
@app.route("/model/details/<oid>")
def model_details(oid):
    m = get_model(oid)
    return json.dumps({'model': m})

我觉得这样做是错误的,因为基本上第一个方法应该返回我想要的数据(遵循REST原则)。如果我这样做了,我的页面网址就会搞砸(对我来说,为网页设置一个好的网址让我的用户直接访问它是很重要的。)

如何清晰地将页面呈现网址与“数据返回”相对应?网址?

1 个答案:

答案 0 :(得分:0)

不是烧瓶专家,但我想你可以将变量传递到包含模型细节的模板中。这样做可以完全摆脱第二次通话的需要。您的控制器能以某种方式获取详细信息并将其传递出去吗?

@app.route("/model/<oid>")
def model_page(oid):
    m = get_model(oid)
    return render_template('model-details.html', model=m)

您可能必须将您的模型作为json发送,但此模式适用于此情况。