创建 Django 项目

  • 创建 python 虚拟环境
# 安装创建虚拟环境所需的包
$ pip install virtualenv

# 进入放置虚拟环境的目录
$ cd ..

# 创建虚拟环境
$ virtualenv <env-name>

# 安装项目所需包
$ pip install -r requirements.txt
# 或直接将原环境的 site-packages 目录与新建虚拟环境的 site-packages 目录合并

# 完成虚拟环境搭建
  • 使用 PyCharm 创建Django 项目

django部署运行的python文件_IIS部署

“interpreter” 选择刚创建的虚拟环境所在目录下的 python.exe。若选项中不存在,点击右边的设置图标,“Add local”即可。

配置 Settings.py

  • 若希望将多个app放置在同一个文件夹下:

        1、在项目根目录创建新文件夹,命名为”apps“,将所有app文件夹拖放进”apps”中,取消勾选“reference”

        2、选中“apps”,右键 -> “make directory as" -> "sources root"

        3、在settings.py中添加路径配置

sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
  • 若项目需要部署至服务器,需要在settings.py中配置 “allowed_host”
ALLOWED_HOSTS = ['*']
  • 配置静态文件路径
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static').replace("\\", "/"),
    ..., #其他静态资源路径
]

开始编写项目

项目部署

Django 在 Windows 中使用 IIS 进行部署

  • 项目文件打包:

        1、项目源代码

        2、虚拟环境文件夹

  • 在 开始 -> 控制面板 -> 程序与功能 -> 左侧"打开或关闭windows功能" -> 开启IIS服务

django部署运行的python文件_Django_02

  • 测试IIS成功打开:在浏览器中输入"localhost" 或 "127.0.0.1"
  • 确保虚拟环境可以通过"python manage.py runserver"正常运行项目,否则先安装项目缺失的包或解决相应BUG
  • 开始部署
  • 打开 开始 -> 控制面板 -> 管理工具 -> internet information service管理器
  • 选择‘网站’,右键,‘添加网站’
  • 输入网站名称、项目源代码所在文件夹、网站端口号,确定。

django部署运行的python文件_虚拟环境_03

  • 管理员身份打开命令行工具,激活python虚拟环境,安装wfastcgi
$ pip install wfastcgi

# 安装成功后,输入:
$ wfastcgi-enable

# 将得到的路径信息复制下来,后续步骤需要用到
  • 在IIS栏目中双击“处理程序映射”,在右侧选择“添加模块映射”
  • 请求路径:*,模块选择“FastCgiModule”,可执行文件填入wfastcgi-enable生成的路径信息,名称随意
  • 点击“请求限制”,取消勾选“仅当请求映射至以下内容时才调用处理程序”,确定。
  • 确定。
  • 点击根节点,在中间IIS栏目选择”FastCGI设置“,找到刚才添加的模块映射,双击打开。
  • 选择”常规“下的”环境变量“,点击右侧按钮进行添加,分别添加如下:
Name:WSGI_HANDLER
Value:django.core.wsgi.get_wsgi_application()

Name:PYTHONPATH
Value:此处填写项目路径

Name:DJANGO_SETTINGS_MODULE
Value:Untitled.settings(Untitled是自己的项目名称)
  • 确定即可。
  • 最后,在static文件夹中添加web.config文件(若所有静态资源均来自于该文件夹),内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
        <handlers>
            <clear/>
            <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
        </handlers>
    </system.webServer>
</configuration>
  • 若app各自有static文件夹,或其他插件的静态文件在其他目录,需要在settings.py中配置”STATIC_ROOT“:
# 配置settings.py
# 注:此路径不能与STATICFILES_DIRS中的路径重复
STATIC_ROOT = os.path.join(BASE_DIR, "static")

# 修改后,在命令行中执行
$ python manage.py collectstatic

# 执行完毕后,会自动生成static文件夹,并整合所有资源
# 将 web.config 文件放置在static文件下即可
  • 重启网站,即可访问。