前言
缺少全栈的练手项目,找了一本书《自动化平台测试开发:python测试开发实战》用来边做边练习,希望能坚持下来。
中间几天又出去玩做了几天的废材,终究是不爱学习的人。第三章看了一下,要补充的基础信息比较多,包括mtc模型,对model和admin有个大概的了解,涉及到操作数据库以及bootstrap4的医用。
目录
一、预备知识的了解
第一章登录的设计没有涉及到数据库的读取,到产品模块设计设计到链接操作数据库内容等,所以对设计模型有个系统的了解。
1.1 MVC 与 MTV模型
MVC 模型
MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC 以一种插件式的、松耦合的方式连接在一起。
- 模型(M)- 编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
- 视图(V)- 图形界面,负责与用户的交互(页面)。
- 控制器(C)- 负责转发请求,对请求进行处理。
MTV 模型
Django 的 MTV 模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django 的 MTV 分别是指:
- M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
- T 表示模板 (Template):负责如何把页面(html)展示给用户。
- V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和 Template。
1.2 Django 的model的用法
Django 模型使用自带的 ORM。
对象关系映射(Object Relational Mapping,简称 ORM )用于实现面向对象编程语言里不同类型系统的数据之间的转换。
ORM 在业务逻辑层和数据库层之间充当了桥梁的作用。
ORM 是通过使用描述对象和数据库之间的映射的元数据,将程序中的对象自动持久化到数据库中。
1.2.1 新建应用
$django-admin.py startapp TestModel
django新建一个model需要新建app应用,必须新建对应的目录
目录结构如下:
HelloWorld
|-- HelloWorld
|-- manage.py
...
|-- TestModel
| |-- __init__.py
| |-- admin.py
| |-- models.py
| |-- tests.py
| `-- views.py
1.2.2 定义model文件
# models.py
from django.db import models
class Test(models.Model):
name = models.CharField(max_length=20)
# test 是相当于一个对象实例,一张表
@model.CharField 代表字段定义成name
以上的类名代表了数据库表名,且继承了models.Model,类里面的字段代表数据表中的字段(name),数据类型则由CharField(相当于varchar)、DateField(相当于datetime), max_length 参数限定长度。
1.3.3 添加应用到settings文件
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'TestModel', # 添加此项
)
1.3.4 同步 models的操作到db
$ python3 manage.py migrate # 创建表结构
$ python3 manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更
$ python3 manage.py migrate TestModel # 创建表结构
python3 manage.py makemigrations
这里是指生成迁移文件,还未进行同步到数据库
python3 manage.py migrate
这里是将迁移同步到数据库,真值实现定义的表文件生成