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>


森林海
浏览 1501回答 1
1回答

函数式编程

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

相关分类

Vue.js