【发布时间】:2015-05-20 23:40:59
【问题描述】:
我有一个 Pyramid Web 应用程序,它从用户那里获取数据,根据发布到视图的值从后端获取一些数据,然后呈现获取的结果。
这是工作流程:
user->enter name->fetch age,other_details based on 'name' from DB->返回一个带有获取值的整洁表
我使用 ajax 来完成第一部分。即,从网页发布值以供查看。
这是POST的相关代码
<script>
var studentname=$(#stuname).val();
$.ajax({
type: "POST",
url: "/trypass",
data: {name:studentname},
cache: false,
success: function(result) {
alert("Successfully inserted!");
}
});
</script>
<input type="text" id="stuname"></input>
<div id="tablegoeshere"><!--I need fetched results here in a table.--></div>
我处理已发布请求的视图(只是一个半功能尝试):
@view_config(route_name='try', renderer='/trypass.pt')
@view_config(route_name='tryjson',renderer='json')
def upload_view(request):
student_name = request.POST.get('name')
age=DBSession.query(Student).filter(name==student_name).first()
return {"age":age.id} #I dont need this. I need the whole tuple returned but dont know how.
您可以看到我在视图装饰器下方堆叠了一个 json 渲染器,但路径不同。我从文档中遵循了它,但这只是在对我没用的新路由中返回值。
我研究了很多,但不相信为什么要使用 json 渲染器来渲染返回的元组;最重要的是,如何。
我想知道的是,我如何/在哪里传递 json 值并在同一个模板(trypass.pt)中返回它?我有一个专门用来填写解析后的json结果。但我对如何做到这一点一无所知。请指导我。非常感谢您。
更多编辑:- 经过更多研究,我发现 javascript 中的 getjson() 方法获取 json 输入,我们可以对其进行解析。但我的问题仍然存在。过关是怎么做的?我是否以正确的方式进行 AJAXing?我还看到 AJAX 中有回调,它可能会获取我的响应并将其呈现到我的 html 页面。请指出我正确的方向。
【问题讨论】:
-
您能澄清一下您真正想要返回浏览器的内容吗? Json 数据?,来自模板的 html?,两者都有?
-
html表中的json数据..
-
所以你最终想要填充数据的html?有几种方法可以做到这一点,所以你必须非常清楚。您可以只返回 html (.pt),也可以返回实际的 json 数据,并将呈现的 html 嵌入到 json 数据中。它们是两种不同的东西。
-
我有一个返回/呈现 JSON 数据的视图,我只想将 json 数据制表。或者,我听到了这个新选项。在 HTML 中嵌入 json 数据?请大神指教一下怎么做?
-
我也可以有一个获取表单来输入用户名并以 json 格式获取其余详细信息,但我不确定如何实现它。请帮忙
标签: python ajax json pyramid templating