我正在尝试将一些数据从模板传递到我的views.py,用它做一些处理,然后将数据传回模板。我最初不知道如何做到这一点,但在浏览谷歌和Stackoverflow之后,我尝试了一个对我来说似乎有点明确的解决方案。这就是我的尝试。
我的views.py: -
@view_config(route_name='home', renderer='templates/mytemp.pt')
def my_view(request):
data = request.POST["data"]
process(data) #function that does something with my data
return {'project': 'myproject','content':data}
mytemp.pt
一个小的javascript片段,后跟html,我的数据在哪里
$.post(
"{{request.route_url('home')}}",
{'data': 'HelloWoRld'}
);
<body>"${content}"</body>
这给了我错误
raise KeyError("No key %r: %s" % (key, self.reason))
KeyError: "No key 'data': Not a form request"
我不想要任何表格并在此处提交按钮。传递的数据可以是任何东西。从文件到变量只是一个偏好。并且可能通过按钮点击发生。 我希望有更好/更正确的方式在视图和模板之间来回传递信息?有人可以指点我正确的方向吗?首先十分感谢。
答案 0 :(得分:0)
经过一番研究和辛劳之后,我找到了实现这一目标的方法。 在我的模板中,我有这个ajax方法发布数据,如下所示
$.ajax({
type: "POST",
url: "/home",
data: {contents:myvar},
cache: false,
success: function(result) {
alert("Success!");
} });
然后在我的views.py中获取发布的变量,如下所示:
viewcontents=request.POST.get('contents')
这是将数据从模板传递到视图的一种很好的工作方式。我们欢迎任何其他方法来实现这一目标。 :)