首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理来自python的HttpResponse

处理来自python的HttpResponse
EN

Stack Overflow用户
提问于 2012-08-21 18:38:06
回答 3查看 224关注 0票数 0

我一直在尝试从我的python脚本(view.py)中检索到我的HTML页面的数组,它看起来像这样-

代码语言:javascript
复制
def archive(request):
    posts = BlogPost.objects.all()
    myVal = ["Dog Toys", "Dog Bedding", "Dog Feeding", "Health & Hygiene"]
    t = loader.get_template("archive.html")
    c = Context({'myposts' : simplejson.dumps(myVal)})
    return HttpResponse(c)

我在test.html上的JavaScript看起来像这样-

代码语言:javascript
复制
<script>
    var results = '{{myposts}}';
    console.log(results);
</script>

这里的问题是,我的数组直接打印在HTML页面上,这意味着我的页面源代码只有以下内容-

代码语言:javascript
复制
1 : {'myposts': '["Dog Toys", "Dog Bedding", "Dog Feeding", "Health & Hygiene"]'}

我确信有一种方法可以克服这个问题,只是不确定怎么做,我是第一次使用Python/Django & JavaScript。

提前感谢你的帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-21 19:12:09

接下来,我可以补充一下地狱的答案:

代码语言:javascript
复制
var result = "{{myposts|join:'/'}}".split('/');

因此,首先将python list连接到字符串,然后使用javascript将其拆分成数组。

票数 1
EN

Stack Overflow用户

发布于 2012-08-21 19:01:40

只管去做

代码语言:javascript
复制
from django.utils.safestring import mark_safe
c = Context({'myposts' : mark_safe(myVal))

然后,您需要省略引号以获得数组:

代码语言:javascript
复制
var results = {{myposts}};
票数 1
EN

Stack Overflow用户

发布于 2012-08-21 19:05:36

替换

代码语言:javascript
复制
var results = '{{myposts}}';

使用

代码语言:javascript
复制
var results = '{% for post in myposts %} {{ post }}, {% endfor %}';

您可以在html中生成javascript。您可以直接将列表传给模板:

代码语言:javascript
复制
c = Context({'myposts' : myVal})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12053119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档