基础知识
2023-05-13 本文已影响0人
梦在白云之上
1 MTC & MTV
1.1 MVC
MVC 是 Model-View-Controller 的缩写,其中每个单词都有其不同的含义:
- Modle 代表数据存储层,是对数据表的定义和数据的增删改查;
- View 代表视图层,是系统前端显示部分,它负责显示什么和如何显示;
-
Controller 代表控制层,负责根据从 View 层输入的指令来检索 Model 层的数据,并在该层编写代码产生结果并输出。
image.png
1.2 MTV
Django 借鉴了经典的 MVC 模式,它也将交互的过程分为了 3 个层次,也就是 MTV 设计模式;
- Model:数据存储层,处理所有数据相关的业务,和数据库进行交互,并提供数据的增删改查;
- Template:模板层(也叫表现层)具体来处理页面的显示;
-
View:业务逻辑层,处理具体的业务逻辑,它的作用是连通Model 层和 Template
image.png
2 ORM模型
ORM (Object Realtional Mapping)即对象关系映射,它是一种基于关系型数据库的程序技术。
image.png
Django 把表模型定义为 Model,他需要继承自django.db.models中的 Model类,只要是与数据表相关的操作,都需要继承这个类
2.1 数据类型
针对数据库中的字段类型,Django ORM 都有对应的 "xxxField" 来表述
字段 | 说明 | 字段属性 |
---|---|---|
AutoFiled | 默认自增主键(Primary_key=Ture),Django 默认建立id字段为主键。 | |
CharFiled | 字符类型 | Max_length=32,字符长度需要明确 |
IntgerFiled | 整型 int | 整数无需max_length |
DateFiled | 年月日时间类型 | auto_now=True,数据被更新就会更新时间 ;auto_now_add=True,数据第一次参数时产生。 |
DateTimeFiled | 年月日小时分钟秒时间类型 | auto_now=True,数据被更新就会更新时间; auto_now_add=True,数据第一次参数时产生。 |
DecimalFiled | 混合精度的小数类型 | max_digits=3,限定数字的最大位数(包含小数位);decimal_places=2,限制小数的最大位数。 |
BooleanFiled | 布尔字段,对应数据库 tinyint 类型数据长度只有1位。 | 值为True或False |
TextFiled | 用于大文本 |
2.2 字段选项
选项 | 作用 |
---|---|
max_length | 存储长度 |
verbose_name | 表项显示的头 |
primary | 主键 |
unique | 唯一性 |
null | 数据库存储空值为NULL |
blank | 表单验证将允许一个空值 |
default | 默认值 |
choices | 选项 |
help_text | 在form表单中显示help的内容 |
2.3 表单代理
实际应用中,广泛存在一个表单需要对应多个界面的情况。以库存管理为例,需要支持修改管理、库存监控、缺货告警等多项应用。
2 URL
URL 的语法格式为:
protocol://hostname[:port]/path[?query][#fragment]
eg : https://www.baidu.com/movie/movieshow?id=234&number=1314#name
各参数如下
关键词 | 说明 | 参数 |
---|---|---|
protocol | 协议 | http,通过 HTTP 协议访问该资源,格式 http://;https,通过安全的 HTTPS 协议访问该资源, 格式 https://;file,资源是本地计算机上的文件,格式 file:///;ftp,通过 FTP访问资源,格式 FTP://。 |
hostname | 主机名 | 放资源的服务器的域名、主机名或 IP 地址username:password@hostname |
port | 端口号 | 协议有默认端口号,有时为了安全禁止了默认端口 |
path | 路由地址 | 由零个或多个/符号隔开的字符串,一般用来表示主机上的一个目录或文件地址 |
query | 查询 | 从?开始到#为止,它们之间的部分就是参数多个参数之间用&作为分隔符 |
fragment | 信息片段 |