Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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模板和Ajax_Python_Ajax_Jquery - Fatal编程技术网

Python模板和Ajax

Python模板和Ajax,python,ajax,jquery,Python,Ajax,Jquery,我无法为这篇文章找到一个更好的标题,所以如果有人觉得它不合适,请继续编辑它 我使用flask作为我的python框架,通常我会按照如下方式渲染模板:- @app.route('/home') def userhome(): data=go get user details from the database return render_template("home.html",userdata=data) 现在我有了一个名为home.html的模板,在其中我迭代了“userda

我无法为这篇文章找到一个更好的标题,所以如果有人觉得它不合适,请继续编辑它

我使用flask作为我的python框架,通常我会按照如下方式渲染模板:-

@app.route('/home')
def userhome():
    data=go get user details from the database
    return render_template("home.html",userdata=data)
现在我有了一个名为home.html的模板,在其中我迭代了“userdata”的值,如userdata.name、userdata.age等,这些值在模板中占据了适当的空格

然而,我正在开发一个应用程序,在这个应用程序中,导航是通过ajax进行的,如果javascript不可用,就不会有退路(基本上,没有javascript,这个应用程序不适用于ppl)。 导航菜单在左侧有几个选项卡(主页、您的报价、您的最后阅读)。右边的列应该根据用户单击的内容进行动态更改

我无法理解如何在这里处理模板。根据用户点击的内容,我可以通过一个json,通过一个xhrGET或xhrPOST,从数据库向他发送所需的数据。是否必须在服务器端处理整个模板,然后通过ajax调用传输整个模板。我其实不太喜欢那个主意。如果有人能给我指出正确的方向那就太好了


现在,在通过ajax加载的页面中,出现了一些脚本。如果通过ajax加载,这些脚本是否有效。

您有两个选项:服务器上的模板,或浏览器中的模板

要在服务器中创建一个模板,您可以创建一个与现有端点非常相似的端点,只是模板只创建页面的一部分。然后通过Ajax调用点击URL,并将返回的HTML插入页面的某个位置


要在浏览器中创建模板,端点将创建JSON响应。然后Javascript模板库可以获取该JSON,从中创建HTML,并将其插入页面。例如,有两个选项。

您有两个选项:服务器上的模板,或浏览器中的模板

要在服务器中创建一个模板,您可以创建一个与现有端点非常相似的端点,只是模板只创建页面的一部分。然后通过Ajax调用点击URL,并将返回的HTML插入页面的某个位置


要在浏览器中创建模板,端点将创建JSON响应。然后Javascript模板库可以获取该JSON,从中创建HTML,并将其插入页面。例如,有。

我会选择服务器端模板,因为除非您找到一个处理相同模板语言的JS库,否则您的代码不会枯竭

home.html
模板中,我将执行以下操作

<%extends base.html%>
<%include _user_details.html%>
... <% footer and other stuff%>

... 

并将实际标记保存在
\u user\u details.html
中。这样,对于AJAX请求,您只需呈现
\u user\u details.html
部分内容。

我会选择服务器端模板,因为除非您找到处理相同模板语言的JS库,否则您的代码不会枯竭

home.html
模板中,我将执行以下操作

<%extends base.html%>
<%include _user_details.html%>
... <% footer and other stuff%>

... 

并将实际标记保存在
\u user\u details.html
中。这样,对于Ajax请求,您只需渲染<代码> 仅部分。

作为另一种选择,只考虑客户端模板。服务器将简单地生成JSON,客户端将呈现它。当然,客户端JavaScript框架(如Actudio、VUE等)会有所帮助。服务器将简单地生成JSON,客户端将呈现它。当然,客户端JavaScript框架(如React、Vue等)会有所帮助。