如何使用javascript中从Django传递的上下文变量? - javascript

我在views.py中有一种方法,如下所示:

def index(self, request):
    initial = get_initial()
    context = {"context" : initial_topics}
    template = loader.get_template('index.html')
    return HttpResponse(template.render(context, request))

如何访问JavaScript中的“上下文”字典?
就像在我的$(function(){})中一样;

参考方案

您可以在HTML script标记内访问上下文变量。

尽管如此,仍适用一些规则:

如果上下文变量是字符串,则将上下文变量用引号引起来。
如果上下文变量是字典或列表,请不要使用引号。但是使用safe过滤器。

例:

<script>
$(function(){
    var my_str = "{{ my_str }}";
    var my_dict = {{ my_dict|safe }};
    var my_list = {{ my_list|safe }};
});
</script>

从上面的示例中,您可以看到可以直接访问Python字典或列表,而无需转换为json。但这可能会导致一些错误。例如,如果您的字典包含TrueFalse关键字,但是JS无法理解这些关键字,则会引发错误。在JS中,等效的关键字是truefalse。因此,在呈现之前将dict和list转换为json是一个好习惯。

例:

import json 

def my_view(...):
    my_list = [...]
    my_dict = {...}

    context = {'my_list': json.dumps(my_list), 'my_dict': json.dumps(my_dict)}
    return ...
var my_list = {{ my_list|safe }};
var my_dict = {{ my_dict|safe }};

什么是最好的免费JavaScript模糊处理程序,可以作为javascript库或python库使用 - javascript

我关注这篇文章:Free JavaScript obfuscators?找到一个JavaScript混淆器,可以帮助我在客户端混淆一些JavaScript数据。但我发现这些选择都不是python或javascript lib,they use java,我使用django,所以我想知道,最好的免费JavaScript混淆器是javascript库或pytho…

Javascript-Python:将动态生成的图像提供给客户端浏览器? - php

场景:用户加载页面,正在生成图像,显示加载栏,通知事件已发送到浏览器。我正在使用python代码生成图像。拥有启动脚本或将Web服务器代码嵌入python脚本的Web服务器是否理想?图像完成渲染后,客户端应收到一条消息,说明图像成功并显示图像。如何设计它以同时支持并发用户?是否只需为每个导航到该网页的新用户启动python脚本就足够了?在这种情况下拥有实时W…

Python Selenium:无法单击按钮 - javascript

我是python的新手,并且想编写一个网络抓取工具,其中涉及在弹出窗口中单击鼠标“确定”按钮。其他一切都进行得很好,但是我无法单击最终按钮,导致数据下载。javascript如下:我尝试通过ID查找元素,但出现以下错误消息: 参考方案 find_elements_by_id返回元素列表。遍历find_elements_by_id返回的列表,或使用find_e…

Javascript + Python:将数组发送到Python脚本,将结果返回给Javascript - javascript

我想建立一个网页,该网页通过Javascript API进行许多Facebook状态更新,并将它们分类到一个数组中。然后,我想将此数组发送到Python脚本,该脚本可以专门使用NLTK.进行语言分析。在Python中获得合适的结果后,我想将结果从该脚本返回到Javascript,以显示给用户等。听起来可能吗? javascript大神给出的解决方案 是的,完…

Django在初始化中将波兰语字符传递给Angular会导致lexer错误 - javascript

这是问题所在-我想使用init从Django传递到Angular数据。我将通过以下方式进行操作:<div ng-init="supervisor={{supervision.supervisor}}"> 哪个看起来还好吧?但是,一旦变量{{supervision.supervisor}}包含Lexer Error: Unexp…