1-Django框架简介以及基本操作
安装
注意:安装的磁盘目录,以及后续通过
Django
创建目录的时候,不要出现中文,否则会出现预料之外的错误建议:禁止套娃,即不要在
A
项目中创建B
项目
# 如果不指定版本号,默认最新版
pip install django
# 如果要指定版本,使用==版本号
pip install django==3.2.12
查看是否安装成功
可以通过
pip list
查看,也可以通过控制台输入django-admin
,弹出类似如下的画面表示安装成功
也可以通过pip show django查看,有类似页面也表示安装成功
Name: Django
Version: 3.2.12
常见命令行运行命令
项目创建
# 创建一个项目
# 这里的项目名称基于python命名规范
django-admin startproject 项目名称
# 建议提前通过cd等命令进入指定目录然后去创建
django-admin startporject douban_spider
项目启动
# 进入到刚刚创建的项目根目录
# IP和PORT可选,默认是本地的 127.0.0.1:8000
python3 manage.py runserver [IP:PORT]
# 例如下面几个均可
python manage.py runserver
python manage.py runserver 8000
python manage.py runserver localhost:8080
项目启动之后直接浏览器访问对应的地址,或者按住CTRL鼠标左键点击地址访问。
创建APP
# 一样是需要进入项目根目录
# 创建语法
python manage.py startapp 应用名
# 例如
python manage.py startapp app
注册APP
创建APP后,如果想使用相关的功能,必须将创建的APP注册到配置文件中
即在settings中加入下述内容
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 这里的appname就是你刚刚通过命令创建的app名称
# app.apps.xxx
'appname.apps.App2Config'
]
通过pycharm操作
创建项目
File --> New Project --> 左侧选择Django --> Location地址后面加一个\然后跟上项目名称 --> 解释器可以根据实际情况自己去选择 --> create
通过
pycharm
创建的Django
项目,如果在Application name
输入了app
名称就会自动创建并注册app
Django配置
创建APP
# 打开终端后,执行命令行工具即可
python .\manage.py startapp app_name
这种也属于命令行去创建,一样需要自己去注册APP
两种创建方式区别说明
- 命令行,创建的项目是标准的
- pycharm,在标准的基础上增加了一点东西
- 创建了一个
templates
目录 - 【settings.py】中,把
templates
的路径加入到了TEMPLATES
这个列表里面
- 创建了一个
伪代码项目介绍
使用
django
写一个淘宝,淘宝里面有很多功能模块我们应该先创建一个空的django项目然后根据功能的不同创建不同的应用
应用名 | 业务 |
---|---|
user | 用户相关业务:管理用户账户信息(账号、密码、角色、权限)、用户行为记录、消息通知等 |
order | 订单相关业务:负责订单生成、订单详情展示、订单状态变更、支付接口调用、物流追踪及订单评价等 |
goods | 产品相关业务:包括商品分类管理、商品详情展示、库存管理、商品评论、浏览记录等 |
promotion | 促销相关业务:针对促销活动的规划、优惠券发放、满减规则设置、折扣计算等; |
category | 商品类别业务:用于商品类别树的构建、导航菜单设置、新品上架、热门推荐等; |
logistics | 物流相关业务:对接物流公司API以获取物流信息、快递单号追踪等功能; |
statistics | 数据分析相关业务:收集并分析平台各项运营数据,如访问量、转化率、客单价等,为决策提供支持; |
项目文件介绍
空项目
├── Django项目名 # 整体项目名
├── db.sqlite3 # Django默认的db数据库,sqlite3
├── manage.py # Django的服务控制文件,所有的Django命令都是基于manage.py 来执行的【***常常使用***】
└── mysite # 项目名
├── __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路由规则【URL和函数的对应关系】【***常常操作***】
└── wsgi.py # Django项目的入口点,将HTTP请求传递给WSGI容器,以启动Django服务器。
分支说明
Django项目名
这是您为该项目创建时指定的名称,比如 "mysite"。
每个Django项目都有一个唯一的名称,并且在整个项目目录下作为顶级目录存在。
db.sqlite3
这是Django默认使用的SQLite数据库文件。
SQLite是一个轻量级的关系型数据库管理系统,无需服务器运行,所有数据存储在一个文件中。
在这个项目中,SQLite被用作开发阶段的数据存储和本地测试环境的默认选项。
manage.py
这是Django的核心服务控制脚本,包含了各种用于管理和维护项目、应用程序以及运行Django服务器的内置命令。
通过manage.py,您可以执行如创建数据库、迁移模型、创建超级用户、运行开发服务器等操作。
mysite
__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这三个文件的编译版本。
asgi.py
在Django 3.0及更高版本中,此文件允许将项目配置为ASGI应用(Asynchronous Server Gateway Interface),即支持异步请求处理的应用程序接口,适用于生产环境中部署长连接或WebSocket服务。
settings.py
项目级别的设置文件,定义了诸如数据库连接、认证方式、中间件列表、静态文件托管、邮件配置等各种全局设置,以及其他项目自定义配置信息。
urls.py
应用程序级别的URL配置文件,定义了项目内各个视图函数与URL模式之间的映射关系,实现了URL路由规则。
wsgi.py
Web Server Gateway Interface (WSGI) 实现文件,是Django项目的入口点,将HTTP请求传递给WSGI容器(如uWSGI, Gunicorn, uWSGI等)以启动Django服务器。
在早期版本中,Django项目可能只有一个根WSGI应用;而在现代Django项目中,可能涉及多个WSGI应用组合。
APP项目
如果说整个Django相当于一所大学,那么APP就相当于大学里面的一所学院。
└── app01 # APP 名字
├── __init__.py # 包初始化文件
├── admin.py # 注册管理后台界面中的模型
├── apps.py # 定义当前app相关的信息【不用动】
├── migrations # 模型相关的数据迁移历史记录文件【不用动】
│ └── __init__.py # 包初始化文件
├── models.py # 数据库模型,操作数据库【重要】
├── tests.py # 用于编写单元测试
└── views.py # 主要逻辑处理模块,负责接收 HTTP 请求并返回响应【重要】
分支说明
app1 是一个名为 app01的Django应用程序目录,它遵循Django应用组织的标准结构,用于组织可重用的功能模块。
__init__.py
此文件是空的,但它表明当前目录 "app01" 是一个Python包,里面包含其他子模块或文件。
admin.py
如果您的 "app01" 应用需要注册管理后台界面(Admin Site)中的模型,则应在该文件中编写自定义的ModelAdmin类,以便管理和编辑数据库表中的记录。
如果没有特定需求,可以保持为空或者注释掉。
apps.py
此文件定义了 "app01" 应用本身,包括应用的元数据(如名称、路径等)、是否启用该应用,以及与其他应用的关系(如有依赖)。
migrations
存储与 "app01" 模型相关的数据迁移历史记录文件(.py)和应用状态文件(.pyc)。
当您更改了 "models.py" 中的模型结构时,Django会根据这些变更生成新的迁移文件,用于更新数据库结构以保持一致。
models.py
该文件定义了 "app01" 中的数据库模型(也称为数据结构或对象)。
每个模型继承自 django.db.models.Model 并定义字段及其属性,例如字段类型、验证规则、外键关联等。它是实现业务逻辑的基础,并最终决定了数据库表的设计。
tests.py
用于编写单元测试(Unit Tests)的模块,确保 "app01" 应用中各个功能模块正确无误地工作。
通过unittest.TestCase类或使用更高级别的测试框架如pytest进行测试用例编写。
views.py
视图(Views)是 "app01" 中的主要逻辑处理模块,负责接收 HTTP 请求并返回响应。
它们是Django URL 路由系统与用户交互的核心部分,定义了如何解析请求、调用相应的业务逻辑以及构建最终返回的响应数据。
每个视图通常与 URLconf 中的一个 URL 路由关联起来。
本文作者:小满三岁啦
本文链接:https://www.cnblogs.com/ccsvip/p/18090662
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步