Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何正确设计页面和数据的URL_Python_Ajax_Rest_Flask - Fatal编程技术网

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

Python 如何正确设计页面和数据的URL,python,ajax,rest,flask,Python,Ajax,Rest,Flask,在我正在开发的一个web应用程序中,我有呈现html的路由,对于该页面的客户端JS应用程序,有返回json数据的路由 我在为这样的场景设计URL时遇到问题。例如,如果我点击一个汽车模型,应用程序是关于汽车的,我需要呈现显示模型详细信息的页面,但同时我需要获取模型及其所有不同变体的数据。到目前为止,我已经: @app.route("/model/<oid>") def model_page(oid): return render_template('model-details.

在我正在开发的一个web应用程序中,我有呈现html的路由,对于该页面的客户端JS应用程序,有返回json数据的路由

我在为这样的场景设计URL时遇到问题。例如,如果我点击一个汽车模型,应用程序是关于汽车的,我需要呈现显示模型详细信息的页面,但同时我需要获取模型及其所有不同变体的数据。到目前为止,我已经:

@app.route("/model/<oid>")
def model_page(oid):
    return render_template('model-details.html')
我觉得这样做是错误的,因为基本上第一个方法应该按照REST原则返回我想要的数据。如果我这样做了,我的页面url就会一团糟。对我来说,为页面提供一个好的url让我的用户直接访问它是很重要的


如何将页面呈现URL与“返回数据”URL完全分离?

不是flask专家,但我可以想象您可以将一个变量传递到包含模型详细信息的模板中。这样做将完全不需要第二次通话。您的控制器能否以某种方式获取详细信息并像这样传递

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

您可能必须以json的形式发送模型,但这种模式应该适用于这种情况。

True。但那不是我想做的。我希望通过我的JS应用程序与数据交互。在这种情况下,单独的AJAX调用模式可以很好地工作——不过,我认为您可能希望使用加载的一些数据呈现模板,以保存另一个服务器调用。
@app.route("/model/<oid>")
def model_page(oid):
    m = get_model(oid)
    return render_template('model-details.html', model=m)