创建 Django 项目
- 创建 python 虚拟环境
# 安装创建虚拟环境所需的包
$ pip install virtualenv
# 进入放置虚拟环境的目录
$ cd ..
# 创建虚拟环境
$ virtualenv <env-name>
# 安装项目所需包
$ pip install -r requirements.txt
# 或直接将原环境的 site-packages 目录与新建虚拟环境的 site-packages 目录合并
# 完成虚拟环境搭建
- 使用 PyCharm 创建Django 项目
“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服务
- 测试IIS成功打开:在浏览器中输入"localhost" 或 "127.0.0.1"
- 确保虚拟环境可以通过"python manage.py runserver"正常运行项目,否则先安装项目缺失的包或解决相应BUG
- 开始部署
- 打开 开始 -> 控制面板 -> 管理工具 -> internet information service管理器
- 选择‘网站’,右键,‘添加网站’
- 输入网站名称、项目源代码所在文件夹、网站端口号,确定。
- 以管理员身份打开命令行工具,激活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文件下即可
- 重启网站,即可访问。