最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • vue前端怎么和django结合

    正文概述    2020-05-26   342

    vue前端怎么和django结合

    vue和django的结合尝试

    使用vue进行前端开发时,如今也是工程化开发,和django类似,也有一个工程目录。开发过程中,会利用nodejs启动一个服务器,默认访问localhost:8080就可以打开页面。

    vue开发过程中会使用vue专有的文件后缀名.vue,这些内容浏览器是无法识别的,因此开发完成后需要对项目进行打包生成浏览器可以识别的js,css文件以及一个单页面index.html。

    django使用的就是最后生成的这几个文件。

    具体设置

    vue项目由前端开发完成后,会通过命令npm run build 打包成一个dist目录,其中包含一个index.html和static目录

    这两项内容是django最终需要的页面。

    static目录和django的static目录是同一个目录,可直接覆盖django的,settings中的配置不变,仍旧是原本的static路径

    index.html可放在模板目录内,在settings中指定模板路径即可,最后配置路由,路由如下:

     path('', TemplateView.as_view(template_name='index.html')),
     path('index/', TemplateView.as_view(template_name='index.html'))

    以上即可结合完成,其他的所有ajax请求,直接后台返回数据即可

    开发过程中跨域问题的解决

    vue开发过程中,ajax请求,既可以通过设置前端来访问,也可以通过django的设置来允许访问

    vue的设置

    vue的设置方式是在项目的config目录下,修改index.js文件中proxyTable项

    // 'http://localhost:7890' 表示的是要跨域请求的地址,vue的开发地址可能是端口8080,7890就等于是django的端口
    // 如果请求的地址是:'http://localhost:7890/index_data'
    // 在请求时就可以写成: '/apis/index_data'
    
    '/apis': {
        target: 'http://localhost:7890',
        changeOrigin: true,
        pathRewrite: {
            '^/apis': ''
        }
    }

    django的设置

    安装第三方包 pip install django-cors-headers 这个包可以自动给响应头中添加允许跨域的响应头

    具体配置分两步:

    1、settings.py修改

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'corsheaders.middleware.CorsMiddleware',  # 注意放置顺序
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',

    2、settings.py添加

    一般情况下,只添加一项:CORS_ORIGIN_ALLOW_ALL = False 即可

    注意此为开发环境,生产环境需要关闭此项


    起源地下载网 » vue前端怎么和django结合

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元