当我使用Django模板渲染器渲染页面时,我可以传入包含各种值的字典变量,以便在页面中使用它们进行操作{{ myVar }}.
有没有办法在Javascript中访问相同的变量(也许使用DOM,我不知道Django如何使变量可访问)?我希望能够使用基于传入的变量中包含的值的AJAX查找来查找详细信息.
我的视图计算一个json并输出一个json.dumps(),我将它作为字典键传递data.我试图将它传递给我的模板中的脚本元素,但是在渲染时,浏览器将其作为python转义字符串获取,{"nodes": [{"count":......这是javascript无法读取的.我需要的是python将它作为JS转义字符串发送,就像这样{"nodes": [{"count":.......我试图str(data)与eval(data)没有成功.基本上我需要python发送字符串就像它将它打印到控制台一样.谢谢
我在观点中回复了这个问题:
data = {'val1' : 'this is x', 'val2' : True}
return HttpResponse(data)
Run Code Online (Sandbox Code Playgroud)
我想在我的javascript中使用字典中的这些信息.有点像这样:
function(data) {
if (data["val2"]) {
//success
alert(data["val1"]);
}
}
Run Code Online (Sandbox Code Playgroud)
但是我的javascript不起作用.弹出没有警报,我知道字典在离开我的python视图时有信息.
我怎样才能在JS中阅读这些信息?
好的,所以视图的答案是simplejson.dumps(数据).现在,当我在模板上的JS中发出警报(数据)时,我得到{'val1':'这是x','val2':真}.现在,我如何管理问题的第二部分,这些部分是读出的值
function(data) {
if (data["val2"]) {
//success
alert(data["val1"]);
}
}
Run Code Online (Sandbox Code Playgroud)
更新: simplejson.dumps(data)将字典转换为字符串.所以在javascript中你需要将字符串转换为一个对象.这是最简单但显然不安全的方式.
var myObject = eval('(' + myJSONtext + ')');
Run Code Online (Sandbox Code Playgroud) 我是第一次使用Vue.js.我需要序列化django的对象
views.py
def articles(request):
model = News.objects.all() # getting News objects list
modelSerialize = serializers.serialize('json', News.objects.all())
random_generator = random.randint(1,News.objects.count())
context = {'models':modelSerialize,
'title' : 'Articles' ,
'num_of_objects' : News.objects.count() ,
'random_order' : random.randint(1,random_generator) ,
'random_object' : News.objects.get(id = random_generator ) ,
'first4rec' : model[0:4],
'next4rec' : model[4:],
}
return render(request, 'articles.html',context)
Run Code Online (Sandbox Code Playgroud)
我试图在html中显示序列化的json数据,它的工作正常,
现在,如何在vue实例中初始化json数据并使用v-repeat属性在html中进行访问.
https://jsfiddle.net/kn9181/1yy84912/
请任何人帮忙???