3.3 初始化项目环境
2025-02-17
3.3.1 INSTALLED_APPS中应用的数据库迁移
manage.py的migrate命令用于将应用的模型定义或修改同步到数据库中migrate命令会检查INSTALLED_APPS里配置的应用列表,依次迭代为每个应用创建所需要的数据表- 默认安装的应用如果不需要,可以根据需要注释或者直接删除应用
- 数据库迁移命令:
python manage.py migrate
具体的实现过程
- Django对于数据库的迁移工作通过两个命令来实现
python manage.py makemigrationspython manage.py migrate
- makemigrations:会检测应用目录下是否存在migrations目录。没有则创建
- 先根据应用的表结构定义生成一个0001_initial.py文件,里面定义了数据表的Schema
- 在执行migrate命令就可以创建数据表了
- 对于项目之后的每一次表结构定义修改,都需要再次执行makemigrations命令
- Django会重新定义一个新的数据库迁移文件,记录表结构之间的差异,需要依次递加,然后执行migrate命令,完成表结构定义的修改
- 为了保证给已经完成的迁移工作不会重复执行,Django会把每一次数据库迁移记录到django_migrations表中,每次执行migrate前都会比较迁移文件是否已经记录在表中了,只有没有出现过的才会执行
3.3.2 创建超级用户登录管理后台
Django的超级用户拥有所有的权限,包括登录管理后台的能力
manage.py 提供了 createsuperuser命令用于创建超级用户,执行命令:
python manage.py createsuperuser --username=admin --email=admin@email.com管理后台的地址:http://127.0.0.1:8000/admin
3.3.3 给项目创建应用
Django项目就是基于Django框架开发的web项目,包含了一组配置和多个应用,称作App
一个App就是一个Python包,并且遵循约定有着同样的目录结构
通常一个App可以包含模型,视图,模板和URL配置,可以被应用到多个Django项目中
Django项目是可以重用Python软件包
Django的目标:关注应用的功能逻辑,不需要关注存储它的基础设施
创建应用的过程:
python manage.py startapp post上面的命令会在manage.py的统计目录看到多出一个post目录
目录结构如下

目录结构 - init.py:表示post是一个Python包
- admin.py:将Model定义注册到管理后台,是Django Admin应用的配置文件。apps.py用于应用程序本身的配置
- migrations目录:存储models.py文件中Model的定义及修改
- migrations/init.py:表示migrations是一个python包
- models.py:用于定义应用中所需要的数据表
- tests.py:用于编写当前应用程序的单元测试
- views.py:用于编写应用程序的视图
3.3.4 Python项目中的requirements.txt文件
项目依赖关系清单
给当前项目生成requirements.txt文件,需要进入到根目录,执行
pip freeze > requirements.txt重建当前项目环境,执行:
pip install -r requirements.txt
3.3.5 项目装载到IDE中
在PyCharm中装载Django项目非常简单,需要完成以下两步操作:
- 打开项目目录 :在PyCharm中,选择
File菜单,然后点击Open,在弹出的对话框中选择项目所在的目录。PyCharm会自动识别项目结构并加载项目。 - 选择虚拟环境:在项目加载完成后,需要为项目选择一个虚拟环境。PyCharm支持多种虚拟环境,包括Python的内置虚拟环境和第三方虚拟环境管理器,如
virtualenv和conda。在PyCharm中,选择File菜单,然后点击Settings(或Preferences,根据PyCharm版本不同),在Project: [项目名称]中选择Project Interpreter,然后选择或添加一个虚拟环境。