windows系统IIS部署Django项目的实践

目录
  • 一、PythonWSGI部署原理
  • 二、准备部署环境
  • 三、安装和配置IIS
  • 四、开放端口
  • 五、本地部署
  • 六、问题

采用IIS服务器部署相比django提供的开发者服务器具有更好的并发访问能力,性能更加稳定。

一、Python WSGI部署原理

python web项目的部署的基本原理,是基于一种WSGI的框架协议。

WSGI协议主要包括Web服务器和应用服务器两部分。

(1)Web服务器:即HTTP服务器,按照HTTP接受用户HTTP请求并提供并发访问,调用Web应用处理业务逻辑。

(2)Python Web应用:应用程序接受由服务器转发的request,处理对应的请求,并将处理结果返回服务器。

本文章采用IIS+Django的方式构建和部署Web项目。

二、准备部署环境

        (1)cmd终端输入:

pip freeze>requirements.txt //搜集python依赖包及对应版本号,生成txt文件

(2)在需要部署项目的服务器上安装依赖包(pip)

pip install -r requirements.txt //文件requirements.txt为上一步cmd命令中生成

这是我自己的python依赖包:(依自己需求安装依赖包)

三、安装和配置IIS

打开windows的“控制面板”→“程序和功能”→“打开或关闭Windows功能”,找到Internet Information Services(Internet 信息服务),按照下图进行勾选。

 四、开放端口

我将自己web应用访问端口设置为了8001端口,设置步骤如下。

(1)打开windows的“控制面板”→“系统和安全”→“Windows Defender防火墙”,单机进入防火墙配置界面。然后界面左侧进入高级设置。

(2)进入高级安全Windows Defender防火墙配置界面,选中左侧“入站规则”栏目,在选中右侧操作栏的“新建规则”选项。弹出的向导中选择“端口(o)”。

(3)点击下一步,输入自己要设的端口号(我设置的8001),然后一直点下一步,命名规则,完成。就可以在入站规则看到这个规则。

(4)在浏览器地址输入localhost访问IIS测试,如果出现以下页面,表示安装成功

 五、本地部署

(先放文件夹,需要注意的有,在项目根目录和static文件夹中各有一个web.config文件。)

第四部分正文开始:

(1)安装python依赖包wfastcgi,并启动(需管理员权限)

pip install wfastcgi 
//启动wfastcgi,,   停止命令为:wfastcgi-disable
wfastcgi-enable  

输出:“python路径” 和 “wfastcgi解释器核心脚本路径”,用"|"隔开

已经在配置提交路径“MACHINE/WEBROOT/APPHOST”向“MACHINE/WEBROOT/APPHOST”的“system.webServer/fastCgi”节应用了配置更改
"d:\python395\python.exe|d:\python395\lib\site-packages\wfastcgi.py" can now be used as a FastCGI script processor

(2)配置web.config文件

为了能够让IIS服务器准确的运行项目,需要配置和设定一些参数,包括项目路径、配置文件路径、解析器等。在django项目文件中创建web.config文件(和manage.py在同一文件夹)。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="Python FastCGI"
                 path="*"
                 verb="*"
                 modules="FastCgiModule"
                 scriptProcessor="d:\python395\python.exe|d:\python395\lib\site-packages\wfastcgi.py"
                 resourceType="Unspecified"
                 requireAccess="Script"/>
        </handlers>
    </system.webServer>
    <appSettings>
        <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
        <add key="PYTHONPATH" value="C:\Users\yangz\Desktop\ZC_System-V20.6_11-09\ZC_System-V20.6" />
        <add key="DJANGO_SETTINGS_MODULE" value="ZC_System.settings" />
    </appSettings>
</configuration>

有三个参数需要注意:

1、scriptProcessor中冒号部分为前面对应的Python和wfastcgi解释器核心脚本路径。

2、<add key="PYTHONPATH" value="C:\Users\yangz\Desktop\ZC_System-V20.6_11-09\ZC_System-V20.6" />,  (这里跟manage.py同一目录)

3、<add key="DJANGO_SETTINGS_MODULE" value="ZC_System.settings" />,这个.settings文件一开始我配置的时候也没有,可以自己配置。没有该文件的同学可以参考下面链接自行配置。

配置"DJANGO_SETTINGS_MODULE"

(3)静态文件文件迁移

1、进入到static文件夹中创建第二个个web.config文件。该文件用于将项目所有的静态资源文件css,js,img等全部导入到根目录下的static文件夹。方便服务器查找静态文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
        <handlers>
          	<remove name="Python FastCGI"/>
        </handlers>
    </system.webServer>
</configuration>

2、打开项目配置文件setting.py

将语句“STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]”替换为 “STATIC_BOOT = os.path.join(BASE_DIR, 'static')”。

//原语句注释掉
# STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
//现语句
STATIC_BOOT = os.path.join(BASE_DIR, 'static')        

cmd终端进入django项目根目录:执行命令

python manage.py collectstatic

(4)IIS创建网站

“控制面板”→“系统和安全”→“管理工具”→“Internet Information Services (IIS)管理器”,打开后左侧上方选中网站栏目,右键选择添加网站进入配置。

此时配置完成:访问http://127.0.0.1:8001即可进入web应用。

 六、问题

        (1)[Errno 13] Permission denied: 'C:\\Users\\yangz\\Desktop\\ZC_System-V20.6_11-09\\ZC_System-V20.6\\templates\\ShouYe\\Login.html'

解决方法:找到django项目文件夹,右键属性,选择安全,编辑用户和组,添加用户“Everyone”并选择完全控制。选择应用。

(2)如果在根目录中没有****.settings问件,会弹出缺少MODULE,

配置***.settings文件

到此这篇关于windows系统IIS部署Django项目的实践的文章就介绍到这了,更多相关IIS部署Django项目内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Django上线部署之IIS的配置方法

    环境: 1 .Windows Server 2016 Datacenter 64位 2 .SQL Server 2016 Enterprise 64位 3 .Python 3.6.0 64位 4.administrator用户,无域环境,最高权限 要求: 按照顺序部署 1 .安装数据库 2 .安装数据库客户端[SSMS] 3 .安装Python 4 .安装IIS 5.安装CGI 6.将源码拷贝至[C:\inetpub\wwwroot\MySite] ( MySite是自定义文件夹,wwwroot

  • windows系统IIS部署Django项目的实践

    目录 一.PythonWSGI部署原理 二.准备部署环境 三.安装和配置IIS 四.开放端口 五.本地部署 六.问题 采用IIS服务器部署相比django提供的开发者服务器具有更好的并发访问能力,性能更加稳定. 一.Python WSGI部署原理 python web项目的部署的基本原理,是基于一种WSGI的框架协议. WSGI协议主要包括Web服务器和应用服务器两部分. (1)Web服务器:即HTTP服务器,按照HTTP接受用户HTTP请求并提供并发访问,调用Web应用处理业务逻辑. (2)P

  • 宝塔面板成功部署Django项目流程(图文)

    上线 Django 项目记录,超简单,避免无意义的踩坑! 第一步:安装python管理器 在宝塔在线面板安装" python项目管理器 " 第二步:安装适配python版本 因为服务器 centos7 系统默认的 python 版本是 2.7 而我们项目是基于最新版 Django 来开发的,本地环境是 python2.7 的,为了尽量保证环境的相似,避免踩无意义的坑. 第三步:导出项目包到requirments.txt python 的安装时间比较长,所以先做一些别的工作,同时在 在本

  • pycharm部署django项目到云服务器的详细流程

    目录 前言 1-下载python3.8压缩包 2-解压缩安装包 3-安装依赖工具 4-安装python3.8 6-修改yum配置文件 7-配置python 8-检验配置结果 9-上传并部署Django项目 前言 大家想一想,如果要在一台电脑上运行python程序需要些什么工具呢? 显而易见,我们需要在电脑上安装python应用,配置python环境等等.那么如果我们需要在云服务器上运行python程序的话要怎么做呢?相信大家已经想到了,就是照葫芦画瓢,在云服务器上做相同的工作就好了. 1-下载p

  • 解决微信浏览器缓存站点入口文件(IIS部署Vue项目)

    最近开发的微信公众号项目中(项目采用Vue + Vux 构建,站点部署在IIS8.5上),遇到个非常奇葩的问题,发布站点内容后,通过微信打开网址发现是空白页面(后来验证是微信浏览器缓存了入口文件-index.html,顾之前版本的index页面找不到对应的js,因为我们每次发布会将之前的版本放至另外的备份目录),但关闭网页再次去打开又是正常的.最初开发内部测试时该问题没有引起关注,因为开发人员大部分都是android的手机,后来测试发现,某些android机型不是必现此问题,但是苹果(IOS)机

  • Docker 部署Django项目的方法示例

    使用docker部署django项目也很简单,挺不错,分享下 环境 默认你已安装好docker环境 django项目大概结构 (p3s) [root@opsweb]# tree opsweb opsweb ├── apps ├── logs ├── manage.py ├── media ├── opsweb ├── README.md ├── requirements.txt └── static 编写Dockerfile 这里指定 Python 版本为docker官方提供的 "0.0.0.0

  • uwsgi+nginx部署Django项目操作示例

    本文实例讲述了uwsgi+nginx部署Django项目操作.分享给大家供大家参考,具体如下: uWSGI概述 uWSGI 是一个全功能的 HTTP 服务器,可以把 HTTP 协议转化成语言支持的网络协议. 安装uwsgi 使用pip安装即可 pip install uwsgi 安装完成后可测试 #vim test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/ht

  • 使用k8s部署Django项目的方法步骤

    接触了一下docker和k8s,感觉是非常不错的东西.能够方便的部署线上环境,而且还能够更好的利用机器的资源,感觉是以后的大趋势.最近刚好有一个基于django的项目,所以就把这个项目打包到docker里面,放到k8是里面运行,顺便学习下k8s和docker的使用. docker 为什么使用docker? 我觉得docker最大的好处是部署的时候比较方便,一个预先打包好的docker镜像,可以在任何安装有docker的机器上面直接运行,不用再安装其他任何的依赖环境.不管是在开发.测试.还是发布阶

  • CentOS下宝塔部署Django项目的详细教程

    基础环境 装好宝塔服务 宝塔里装好[Python项目管理器] 宝塔里装好[Nginx] 把Django项目代码发到服务器 把代码放到服务器上有两种方法: 方法一:服务器上安装Git,通过Git Clone代码到服务器上 方法二:通过宝塔的FTP工具把代码上传上去 注意: 在目录:/www/wwwroot/下新建一个文件夹, 把代码需要放到新建的目录中 创建Python(Django)项目 现在我们开始创建 python 项目.打开首页的 python 项目管理器,点击 添加项目.填充数据: *

  • centos8使用Docker部署Django项目的详细教程

    引言 在本文中将介绍在Docker中通过django + uwsgi + nginx部署方式部署Django项目, 由于记录的是学习过程,使用的都是目前较高的版本. python  版本为3.8.3 django  版本为3.0.6 nginx   版本为1.17.10 好了简单的介绍之后,就进入正题了. 创建一个工作目录 创建一个工作目录用来存放项目,和Dockerfile等文件. mkdir uwsgidocker 简单说明一下各个文件 docker-compose.yml: Docker

  • 使用gunicorn部署django项目的问题

    1.开发环境运行项目 python mange.py runserver 0.0.0.0:8000 2.使用gunicorn在生产环境部署 Gunicorn"绿色独角兽"是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器 pip install gunicorn gunicorn -w 2 -b 0.0.0.0:8000 project_django.wsgi 常用参数: -c 指定一个配置文件(py文件) -b 与指定的socket进行绑定 -D 以守护进程形

随机推荐