栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Win10服务器IIS上部署项目(Vue前端 + Python-Django后端整合)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Win10服务器IIS上部署项目(Vue前端 + Python-Django后端整合)

部署方式

最初打算将Django项目部署到Nginx服务器,此部署除了需要Nginx服务器外,还需要一个和Nginx服务器进行通信的协议软件-----uwsgi。

可是,经过尝试,最终没能成功将uwsgi安装在win10服务器上,搜到关于uwsgi教程都是在linux上的部署。服务器都是win10,所以最终选择部署在IIS上。

Django+Vue的项目,实际部署的时候有两种方法:

1.在Django上集成vue,也就是在settings.py配置templates目录到vue的dist目录,这样可以实现在Django的服务上直接调取vue前端,后端api还是使用Django的。

2.Django自己启服务,只提供API,vue自己启动服务,只提供前端。比如Django部署在IIS,Vue前端部署在nginx上,然后通过代理访问后端。

刚开始采用第二种方法,最后前后端代理死活调不通,最后采用了第一种方法。

部署的前提是前后端分别能够各自运行且请求正常。

具体的实现步骤参考大佬的文章:

https://blog.csdn.net/weixin_44697492/article/details/117734558

https://blog.csdn.net/m0_38051293/article/details/102470224

本项目主要参考第一个教程

踩坑环节:

1.FastCGI添加环境变量的时候,DJANGO_SETTINGS_MODULE路径是settings.py文件的路径,笔者的路径是settings文件夹下的dev.py文件,所以路径是第三行。后端根目录下的web.config文件中路径保持一致。

Name: DJANGO_SETTINGS_MODULE

Value:drf_admin.settings(drf_admin是自己的项目名称)

Value:drf_admin.settings.dev     

本项目根目录下web.config文件配置如下:



    
      
      
      
    
    
        
			
            
        
        
		  
		    
		 
    


2.settings/dev.py配置:

DEBUG = False

ALLOWED_HOSTS = ['*']

STATIC_ROOT = 'E:drf_admin-masterstatic'      # 后端静态文件路径

STATICFILES_DIRS = [
    os.path.join(base_DIR, "E:\drf_admin-master\frontend\dist\static\"),
]                                               # 前端静态文件路径

3.前后端其实都是在各自的服务器上的,Django在127.0.0.1:8000上,Vue在127.0.0.1:8080上,我们需要把他们放到一起,此时就需要用到Django的TemplateView,将其指向我们刚才生成的前端工程frontend下的dist文件即可。
找到内层drf_admin文件夹下的urls.py,修改代码如下:

from django.views.generic import TemplateView

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

由于我们使用了Django的模板系统,所以需要配置一下模板使Django知道从哪里找到index.html。在 内层drf_admin文件夹下的settings/dev.py下,修改代码如下:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['E:\drf_admin-master\frontend\dist\'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

4.接口中查询是GET请求,新增是POST请求,而修改是PUT请求,删除是DELETE请求,IIS服务通常都是支持get和post请求的,由此分析推断很有可能是IIS不支持put和delete谓词请求。

解决方案(针对当前网站,去除WebDav 模块):
修改根目录下web.config文件,在system.webServer标签中添加:

  
	   
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/642719.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号