首次请求加载json数据并在首页显示

Posted

技术标签:

【中文标题】首次请求加载json数据并在首页显示【英文标题】:Load json data for the first time request and to display the same in Home Page 【发布时间】:2016-07-06 23:40:14 【问题描述】:

我是第一次使用 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)

我试图在 html 中显示序列化的 json 数据,它在那里工作正常,

现在,如何在 vue 实例中初始化 json 数据并使用 v-repeat 属性在 html 中访问。

https://jsfiddle.net/kn9181/1yy84912/

谁能帮忙???

【问题讨论】:

从 1.0+ 版本开始,v-repeat 已被删除,取而代之的是 v-for。所以这可能是问题 谢谢。我现在改为 v-,但我的问题是,如何将序列化数据 json 传递给 js 我不知道 python,但是在 php 中我们会做类似的事情,var json = " <?php echo $json_string;?>" 将 json 数据作为字符串从 php 传递给 js。和var obj = JSON.decode(json); 获取js对象。 没有解决我的问题。 看看***.com/questions/1445989/…一旦得到包含数据的js对象,就可以把数据传给Vue() 【参考方案1】:

一个简单的例子。

views.py

def articles(request):
    context 
        'articles' : ['a1','a2','a3']
    
    return render(request, 'articles.html', context)

articles.html

% verbatim %
<div id="app">
    <ul>
     <li v-for="a in articles"> a </li>
    </ul>
</div>
% endverbatim %

<script>
    new Vue(
        el : "#app",
        data : function()
            return 
                articles :  articles | safe 
            
        
    )
</script>

注意事项:

verbatim 标记用于阻止 Django 呈现此块标记的内容,因为 Vue 使用相同的插值符号。 safe 过滤器可防止 Django 转义内容。 如果要传递字典,请考虑先将其转换为 JSON

一般来说,更喜欢通过Ajax向Vue传递数据

【讨论】:

以上是关于首次请求加载json数据并在首页显示的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中将json数据加载到片段中

react 在请求表达服务器后显示原始 json 数据

vue中json文件过大加载缓慢

如何在列表视图的每个项目上加载 json 数据并显示在 android 的另一个活动中获取的数据?

将大型 JSON 文件数据加载到 Angular cli 表中

解析 JSON 并在 Angular 中显示数据