IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python+Django2.0+windows iis项目详细部署(一) -> 正文阅读

[Python知识库]python+Django2.0+windows iis项目详细部署(一)

一、API后端服务的安装环境

环境:Windows Server 2016 + SQL Server 2016 + Python3.6 +Django2+ IIS10.0

二、搭建Python环境及安装IIS、CGI

1.下载并安装python到相应的目录:https://www.python.org/downloads/release/python-368/
2.创建python虚拟环境
1.创建目录

e:
mkdir innovation
cd E:\innovation
mkdir virtualenvs
cd E:\innovation\virtualenvs

2.创建虚拟环境

python -m venv innovation_venv

3.激活虚拟环境

cd innovation_venv\Scripts

activate.bat # activate the virtual env

三.配置django项目

备注:服务器没有联网的情况下;需将安装包都下载到本地 然后复制到服务器上安装;或在联网的情况下用pip安装后讲包
目录复制过来
1.安装Django项目依赖包

cd 项目根目录

2.安装依赖包

pip install -r requirements.txt

3.安装wfastcgi
在激活虚拟环境下执行命令

pip install wfastcgi

4.执行命令

run wfastcgi-enable
"E:\innovation\virtualenvs\innovation_venv\Scripts\python.exe|E:\innovation\virtualenvs\innovation_venv\lib\site-packages\wfastcgi.py" can now be used as a FastCGI script processor

出现以上说明wfastcgi配置成功

wfastcgi是一个类似于Gunicorn或uwsgi的WSGI。wfastcgi是由微软维护的,使用它会比尝试在windows上编译其他基于linux的WSGI服务器更好。
如果你的Django应用只在Windows上使用,你可以考虑把wfastcgi放到requirements.txt文件中。
参考: https://pypi.org/project/wfastcgi/

安装配置完上述环境后,验证python项目是否能运行
在这里插入图片描述
出现以上信息说明项目启动成功!

四.在IIS中配置django项目

1.安装iis
这里就不详细介绍了
Windows10如何安装IIS(互联网信息服务):https://jingyan.baidu.com/article/eb9f7b6d9e73d1869364e8d8.html
在这里插入图片描述
安装成功后的额界面,安装成功后可以启动iis,windows桌面会生成图标,双击即可运行
在这里插入图片描述
2.配置django服务
在iis中配置FastCGI
在项目根目录中,创建一个新的web。配置配置文件并放入以下内容

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <modules>
            <remove name="WebDAVModule" />
        </modules>
        <handlers>
            <remove name="WebDAV" />
            <add name="django-innovation" path="*" verb="*" modules="FastCgiModule" scriptProcessor="E:\innovation\virtualenvs\innovation_venv\Scripts\python.exe|E:\innovation\virtualenvs\innovation_venv\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
	    <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="419430400" />
            </requestFiltering>
        </security>
        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>
    </system.webServer>
    <appSettings>
       <add key="PYTHONPATH" value="E:\otis_innovation\backend" />
       <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
       <add key="DJANGO_SETTINGS_MODULE" value="innovation.settings" />
       <add key="WSGI_LOG" value="E:\otis_innovation\logs\wfastcgi.log" />
    </appSettings>
    <system.web>
        <httpRuntime executionTimeout="6000" maxRequestLength="419430400" />
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

scriptProcessor="E:\innovation\virtualenvs\innovation_venv\Scripts\python.exe|E:\innovation\virtualenvs\innovation_venv\lib\site-packages\wfastcgi.py" 

这里的路径是在配置wfastcgi是获取的

配置说明:
1、system.webServer.handlers
    FastCgiModule
2、appSettings
 python项目配置
3、支持大文件上传的配置
system.webServer.security.requestLimits
system.web.httpRuntime
       
解决超时问题修改配置:
FastCGI Settings:Activity Timeout、Idle Timeout、Request Timeout
    Application Pool: Idle Time-out (minutes)

参考:
https://docs.microsoft.com/en-us/visualstudio/python/configure-web-apps-for-iis-windows?view=vs-2019
https://pypi.org/project/wfastcgi/
3. 创建并配置新的IIS网站
打开IIS管理器→右键网站→添加网站
在这里插入图片描述

在这里插入图片描述
访问项目
在这里插入图片描述
项目启动成功
在这里插入图片描述

至此,后端django项目配置完成!

服务器目录说明

项目部署主目录:E:\innovation
Python3.6.8安装目录:D:\Program Files(x86)\Python\Python36
1、后端API服务
代码及存储
   代码 目录:E:\innovation\backend
   ldap配置:E:\innovation\backend\innovation\ldap_settings.py
   数据库等配置项:E:\innovation\backend\innovation\secret.py
   上传文件 目录:E:\innovation\media
   缓存文件 目录:E:\innovation\cache
   日志文件 目录:E:\innovation\logs
Python虚拟环境目录
   E:\innovation\virtualenvs\innovation_venv
  
2、Web前端
   E:\innovation\dist //前端源码 build后的文件

迭代部署:

Web前端:
1、替换E:\innovation\dist目录
API后端
1、替换E:\innovation\backend目录
    如果有新的migrations文件的话 需要执行一下数据库迁移
2、执行数据库迁移(migrations)
打开命令行工具(Windows Command Prompt)
进入E盘:
 e:
进入项目Python虚拟环境并激活
      cd E:\innovation\virtualenvs\innovation_venv
          Scripts\activate.bat
进入项目代码目录,执行数据库迁移
          cd E:\innovation\backend
python manage.py migrate

项目相关配置

Sql Server数据库配置

DATABASES = {
   'default': {
   'ENGINE': 'sql_server.pyodbc',
   'HOST': 'ocnsia11\LDC',
   # 'PORT': 1433, // when use host 'ocnsia11\LDC', the port is no not required.
   'NAME': 'innovation',
   'USER': 'Innovation',
   'PASSWORD': 'China2025',
   'OPTIONS': {
#'driver': 'SQL Server Native Client 11.0',
   'driver': 'ODBC Driver 17 for SQL Server',
   },
   },
}

备注:请确保部署的服务器上已经安装了 (“ODBC Driver 17 for SQL Server”, “ODBC Driver 13 for SQL Server”,
“SQL Server Native Client 11.0”)中的任何一个
参考:
https://github.com/michiya/django-pyodbc-azure
https://docs.microsoft.com/en-us/sql/connect/odbc/microsoft-odbc-driver-for-sql-server
https://docs.microsoft.com/en-us/sql/relational-databases/native-client/applications/installing-sql-server-native-client
Ldap For Django配置
第三方库:django-python3-ldap
备注:对接 项目的ldap中需要修改部分源码 (otis公司的技术提供了支持),
ldap.py、ldap_settings.py在后端代码中 和 本文档一起打包成zip

配置文件:
 innovation/ldap_settings.py
需要被替换的源码文件:({venv_path}为python环境的目录)
{venv_path}\lib\site-packages\django-python3-ldap\ldap.py
    
主要配置项的说明:
  # The URL of the LDAP server.
 LDAP_AUTH_URL = "ldap://xxxx.COM"
# Initiate TLS on connection.
 LDAP_AUTH_USE_TLS = False
# The LDAP search base for looking up users.
# LDAP_AUTH_SEARCH_BASE = "OU=users,OU=China,OU=ap,DC=otis,DC=COM"
 LDAP_AUTH_SEARCH_BASE = ["OU=users,OU=China,OU=ap,DC=otis,DC=COM", "OU=users,OU=Ch
      "OU=Otis,OU=APAC,OU=CSC_Users,OU=.Resources,DC=otis,DC=COM
# Keep ModelBackend around for per-user permissions and maybe a local
 AUTHENTICATION_BACKENDS = (
   "django_python3_ldap.auth.LDAPBackend",
   'django.contrib.auth.backends.ModelBackend',
   )
    # attributes that represent them.
    LDAP_AUTH_USER_FIELDS = {
   "username": "sAMAccountName",
   "first_name": "givenName",
   "last_name": "sn",
   "email": "mail"
}

文件存储配置

# Log、Cache、Media
MEDIA_ROOT = r"E:\innovation\media" # 上传文件目录
CACHE_FILE_ROOT = r"E:\innovation\cache" # 缓存文件目录
LOGGING_FILE_ROOT = r"E:\innovation\logs" # 缓日志文件目录

邮件SMTP

# Email SMTP
DEFAULT_FROM_EMAIL = 'noreply@pusher.mail.xxxx.com' #默认的邮件发件人
EMAIL_HOST = 'smtpdm.aliyun.com'  #邮件SMTP的Host
EMAIL_PORT = 80  #邮件SMTP的端口
EMAIL_USE_TLS = False
EMAIL_HOST_USER = 'noreply@pusher.mail.xxxx.com' #邮件SMTP的用户名
EMAIL_HOST_PASSWORD = '' #邮件SMTP的密码
# ADMINS Will ReceiveServer Error Mail
SERVER_EMAIL = 'noreply@pusher.mail.xxxx.com' #服务器Error邮件发件邮箱名
ADMINS = [('Fanping', 'fanping@xxxx.com'), ]  #服务器Error邮件接收人

前端项目的部署会在第二篇文章中介绍!

希望对你有帮助,欢迎留言点赞收藏!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:36:13  更:2021-10-16 19:37:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:33:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码