3.11 修改 virtualenvwrapper 创建的虚拟环境的存放目录
virtualenvwrapper 创建的虚拟环境默认存放在C:\Users\用户名\envs目录下。
我的电脑(计算机)右键 =》 属性 =》高级系统设置 =》 环境变量 =》新建系统变量
3.12 实现 virtualenvwrapper 管理所有的虚拟环境
要让 virtualenvwrapper 能够管理所有的虚拟环境,需要将所有的虚拟环境目录剪切粘贴到 virtualenvwrapper 虚拟环境的存放目录中。
4. 虚拟环境中安装Django
进入用于创建django项目的虚拟环境
在该虚拟环境中安装Django:
pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
在当前虚拟环境安装的第三方包不会对其他虚拟环境造成影响,即每个虚拟环境相互独立互不影响。
5. 命令行创建Django项目
创建Django项目的命令:
django-admin startproject 项目名
5.1 Django 项目的创建
在虚拟环境 test_env05 对应的目录下新建Django项目:
新建Django项目的项目存放目录也可自行选择,创建Django项目时处于虚拟环境下即可。
5.2 查看新建项目的目录结构
- manage.py:命令行工具,内置多种方式与项目进行交互,该文件是项目的管理工具(或脚本),管理其所在的django项目,该文件主要用于项目的启动、项目子应用的创建、项目数据库的迁移等。更多指令可以在命令提示符窗口下,将路径切换到项目的根目录下运行
python manage.py help
命令进行查看。 - test_pro01:项目配置文件存放目录,主要存放与项目配置有关文件。
- asgi.py:与ASGI兼容的web服务器,开启一个ASGI服务,ASGI是异步网关协议接口,为项目提供服务的入口。
- settings.py:项目的全局配置文件,项目的所有功能都需要在该文件中进行配置。
- urls.py:项目的总路由配置文件。
- wsgi.py:与WSGI兼容的web服务器,是python服务器网关接口,是python由于与web服务器之间的接口,为项目提供服务的入口,用于django项目在服务器上的部署和上线。
__init__
.py:python包的初始化文件
5.3 项目子应用的创建
创建子应用的命令:
python manage.py startapp 子应用名
在项目的根目录下创建子应用:
5.4 查看项目子应用的目录结构
- admin.py:子应用后台管理相关的文件,用于设置当前子应用的后台管理功能。
- apps.py:当前子应用的配置信息。
- models.py:子应用的模型文件,在该文件中定义数据库的映射类,每个类对应数据库中的一张表,MTV中的模型(Model)。
- tests.py:子应用的测试文件,子应用自动测试模块,用于实现单元测试。
- views.py:子应用的视图文件,处理业务逻辑功能的代码声明在这文件中,MTV中的视图(Views)。
- migrations:子应用数据迁移文件的存放目录,生成的存放于该目录下的数据迁移文件可以用于在数据库中生成相应的数据表。
__init__
.py:python包的初始化文件
5.5 pycharm中打开项目并配置虚拟环境运行项目
5.5.1 pycharm打开项目
5.5.2 打开后自动识别配置
指定项目运行的端口号
5.5.3 自行配置
如果没有自动识别并配置可以手动为打开的django项目配置虚拟环境:
5.6 命令窗口运行项目
5.6.1 运行项目时指定端口号
python manage.py runserver [指定项目运行时的端口号]
python manage.py runserver 8888
浏览器访问 http://127.0.0.1:8888/
5.6.2 运行项目时不指定端口号
如果没指定项目运行时的端口号,则项目默认运行的端口号为8000
python manage.py runserver
浏览器访问 http://127.0.0.1:8000/
5.7 项目注册子应用
项目的子应用在项目的全局配置文件中进行注册:
在项目的全局配置文件中找到注册子应用的配置项:
5.7.1 注册子应用方式一
在注册子应用的配置项中的最后添加子应用名:
直接写子应用名,会自动寻找子应用目录下apps.py文件中的“子应用名Config”类型
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', '子应用名', ]
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'subapp01', # 注册子应用 subapp01 ]
5.7.2 注册子应用方式二
注册子应用时,采用完整的写法:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', '子应用名.apps.子应用名Config' ]
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'subapp01.apps.Subapp01Config', # 注册子应用 subapp01 ]