【一】下载并使用
【1】下载框架
(1)注意事项
- 计算机名称不要出现中文
- python解释器版本不同可能会出现启动报错
- 项目中所有的文件名称不要出现中文
- 多个项目文件尽量不要嵌套,做到一项一夹
(2)下载
- Django属于第三方模块,需要下载安装
- 如果之前下载了其他版本不用管,解释器会自动卸载替换
python
pip install django==3.2.12
【2】命令行启动
(1)创建Django项目
- 在win11系统的cmd终端切换到要创建的项目文件夹
python
cd /d 文件夹路径
- 创建项目
python
django-admin startproject 项目名
(2)启动项目
- 进入到创建的项目文件中(含有manager.py文件)
python
cd 项目名
- 启动项目
- 不写,默认是127.0.0.1:8000
python
python mananger.py runserver [IP:PORt]
- 得到地址就可以进入了
python
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
(3)创建APP
- 需要再次启动一个cmd终端
- 如何快速在指定文件夹启动
- 在文件夹导航条的最前面输入
cmd+空格
即可
- 创建app
- 将在这个目录下创建文件夹
应用名
- 将在这个目录下创建文件夹
python
python manage.py startapp 应用名
(4)注册app
-
创建APP后,必须将创建的APP注册到配置文件中
-
才可以使用相关的功能
-
setting.py文件夹中进行修改
python
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'应用名', --简写
]
【3】pycharm启动
(1)创建Django项目
- File ---> New Project
(2)启动项目
- 配置可以更改也可以不改
- 右上角展开 ---> edit configurations
- 启动
- 像普通py文件一样直接点击右上角运行
(3)创建APP
-
方式一:
-
点击pycharm底部Terminal
-
输入
pythonpython .\manage.py startapp 应用名
-
-
方式二:
-
点击tools ---> Run manage.py Task
-
输入
pythonstartapp 应用名
-
(4)注册app
- 如果在创建项目时,也创建了app
- 那么这个app已经自动注册了
- 后续通过命令创建的app
python
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'admin.apps.App01Config', --全称
'admin', --简写
]
【二】项目文件介绍
【1】APP
- 这并不是指手机上的app
(1)介绍
- 在Django中,App(应用)是指一个可重用的模块,用于实现特定功能或业务逻辑的组件。
- 每个Django项目由一个或多个App组成,每个App可以包含模型、视图、模板和静态文件等组件,用于处理特定的功能模块。
(2)作用
- App用于将一个大型的Web应用程序拆分为多个小的、可重用的模块。
- 每个App都负责处理特定的功能或业务逻辑,使得应用程序的开发和维护更加模块化和可扩展。
(3)组成
- 模型(Models):模型定义了数据结构和数据库表之间的映射关系。每个App通常会包含自己的模型,用于处理和管理特定的数据。
- 视图(Views):视图负责处理用户的请求和逻辑处理。每个App可以包含自己的视图,用于处理特定功能的请求和生成响应。
- 模板(Templates):模板用于展示数据给用户。每个App可以包含自己的模板,用于定制和渲染特定功能的页面。
- 静态文件(Static Files):静态文件包括CSS样式表、JavaScript脚本和图像等。每个App可以包含自己的静态文件,用于定制和美化特定功能的界面。
(4)结构
- 每个App通常都有一个独立的目录,其中包含该App的相关组件和文件。
- 在App的目录中,通常会包含一个
models.py
文件,用于定义该App的模型。 - 可以在App的目录中创建
views.py
文件,用于定义该App的视图函数或类。 - 可以在App的目录中创建
templates
目录,用于存放该App的模板文件。 - 可以在App的目录中创建
static
目录,用于存放该App的静态文件。 - 还可以在App的目录中创建其他辅助文件,如表单定义、URL配置等。
【2】文件结构
(1)空项目
python
├── Django项目名 # 整体项目名
├── db.sqlite3 # Django默认的db数据库,sqlite3
├── manage.py # Django的服务控制文件,所有的Django命令都是基于manage.py 来执行的
├── templates.py # 专门存储html文件
└── Django项目名 # 项目名
├── __init__.py # 包初始化文件
├── __pycache__ # 缓存编译后的模块代码,加快加载速度
│ ├── __init__.cpython-310.pyc # 编译后的文件
│ ├── settings.cpython-310.pyc # 编译后的文件
│ ├── urls.cpython-310.pyc # 编译后的文件
│ └── wsgi.cpython-310.pyc # 编译后的文件
├── asgi.py # 支持异步请求处理的应用程序接口
├── settings.py # 配置文件
├── urls.py # 实现URL路由规则
└── wsgi.py # Django项目的入口点,将HTTP请求传递给WSGI容器,以启动Django服务器。
-
Django项目名
- 项目创建时指定的名称
- 每个Django项目都有一个唯一的名称,并且在整个项目目录下作为顶级目录存在。
-
db.sqlite3
-
Django默认使用的SQLite数据库文件
-
SQLite是一个轻量级的关系型数据库管理系统,无需服务器运行,所有数据存储在一个文件中
在这个项目中,SQLite被用作开发阶段的数据存储和本地测试环境的默认选项
-
-
- 这是Django的核心服务控制脚本,包含了各种用于管理和维护项目、应用程序以及运行Django服务器的内置命令。
- 通过
manage.py
,您可以执行如创建数据库、迁移模型、创建超级用户、运行开发服务器等操作。
-
Django项目名
__init__.py
- 这是一个空的Python模块文件,它告诉Python这是一个包含其他模块或包的目录。
- 尽管对于Django项目来说,这通常不是必需的,但在一些情况下可能会用到。
__pycache__
-
Python会在此目录下缓存编译后的模块代码,以便加快后续加载速度。
-
这些目录通常不应该直接修改或删除,而是由Python自动处理。
-
__init__.cpython-310.pyc
: 编译后的初始化模块。 -
settings.cpython-310.pyc
,urls.cpython-310.pyc
,wsgi.cpython-310.pyc
: 分别对应于settings.py、urls.py和wsgi.py这三个文件的编译版本。 -
- 在Django 3.0及更高版本中,此文件允许将项目配置为ASGI应用(Asynchronous Server Gateway Interface),即支持异步请求处理的应用程序接口,适用于生产环境中部署长连接或WebSocket服务。
-
- 项目级别的设置文件,定义了诸如数据库连接、认证方式、中间件列表、静态文件托管、邮件配置等各种全局设置,以及其他项目自定义配置信息。
-
- 应用程序级别的URL配置文件,定义了项目内各个视图函数与URL模式之间的映射关系,实现了URL路由规则。
-
- Web Server Gateway Interface (WSGI) 实现文件,是Django项目的入口点,将HTTP请求传递给WSGI容器(如uWSGI, Gunicorn, uWSGI等)以启动Django服务器。
- 在早期版本中,Django项目可能只有一个根WSGI应用;而在现代Django项目中,可能涉及多个WSGI应用组合。
(2)app目录
python
└── APP名称 # APP名称
├── __init__.py # 包初始化文件
├── admin.py # 注册管理后台界面中的模型
├── apps.py # 定义当前app相关的信息
├── migrations # 模型相关的数据迁移历史记录文件
│ └── __init__.py # 包初始化文件
├── models.py # 数据库模型
├── tests.py # 用于编写单元测试
└── views.py # 主要逻辑处理模块,负责接收 HTTP 请求并返回响应
- APP名称 是Django应用程序目录,它遵循Django应用组织的标准结构,用于组织可重用的功能模块。
__init__.py
- 此文件是空的,但它表明当前目录 是一个Python包,里面包含其他子模块或文件。
- admin.py
- 如果应用需要注册管理后台界面(Admin Site)中的模型,则应在该文件中编写自定义的ModelAdmin类,以便管理和编辑数据库表中的记录。
- 如果没有特定需求,可以保持为空或者注释掉。
- apps.py
- 此文件定义了 应用本身,包括应用的元数据(如名称、路径等)、是否启用该应用,以及与其他应用的关系(如有依赖)。
- migrations
- 存储与模型相关的数据迁移历史记录文件(
.py
)和应用状态文件(.pyc
)。 - 当更改了 "models.py" 中的模型结构时,Django会根据这些变更生成新的迁移文件,用于更新数据库结构以保持一致。
- 存储与模型相关的数据迁移历史记录文件(
- models.py
- 该文件定义了的数据库模型(也称为数据结构或对象)。
- 每个模型继承自
django.db.models.Model
并定义字段及其属性,例如字段类型、验证规则、外键关联等。它是实现业务逻辑的基础,并最终决定了数据库表的设计。
- tests.py
- 用于编写单元测试(Unit Tests)的模块,确保 应用中各个功能模块正确无误地工作。
- 通过
unittest.TestCase
类或使用更高级别的测试框架如pytest
进行测试用例编写。
- views.py
- 视图(Views)是 应用中的主要逻辑处理模块,负责接收 HTTP 请求并返回响应。
- 它们是Django URL 路由系统与用户交互的核心部分,定义了如何解析请求、调用相应的业务逻辑以及构建最终返回的响应数据。
- 每个视图通常与 URLconf 中的一个 URL 路由关联起来。