首次加载 json 数据请求并在主页中显示相同的数据

Load json data for the first time request and to display the same in Home Page

本文关键字:数据 显示 主页 加载 json 请求      更新时间:2023-09-26

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

请任何人都可以帮忙???

一个简单的例子。

views.py

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

文章.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>

需要注意的事项:

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

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