django的TemplateView如何给vue的index.html传递参数?

用的是django+vue做后端和前端,我想在渲染首页的时候传递一些后端的配置给前端页面:

class HomePageView(TemplateView):
    template_name="index.html"
 
    def get_context_data(self, **kwargs):
        context = super(HomePageView, self).get_context_data(**kwargs)
        context['arg1'] = "12345"
        context['arg2'] = "67890"
        return context


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', HomePageView.as_view()),
]

但是前端vue build出来的的index.html很简单,如何才能让vue里面的js访问后端给它的context参数?


        <body>
            <div id=app>{{ arg1 }}</div>
            <script type=text/javascript src=/static/js/manifest.ab01a7ddcd228431bc0f.js></script>

            <script type=text/javascript src=/static/js/vendor.4be9c4044c880f3a85ed.js></script>
            <script type=text/javascript src=/static/js/app.11129f6d90cce37c7348.js></script>

        </body>
阅读 4.3k
1 个回答

django和vue通常是用来完全前后端分离的开发,完全前后端分离前后端的html文件就不共用了。应该是通过访问前端路由,页面上再调用后端接口,后端接口只返回json。看你的写法是前后端混在一起了(好久之前我也是这么干的,不太好),应该还是访问的后端路由,这样的话vue和django的模板语法会有冲突,都是{{}},网上应该有解决办法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题