Model 模型
模型是你的数据的唯一的、权威的信息源。它包含你所存储的数据的必要字段和行为。
通常,每个模型对应数据库中唯一的一张表。
- 每个模型都是dhango.db.models.Model 的一个Python子类
- 模型的每个属性都表示数据中的的一个字段
- Django提供一套自动生成的用于数据库访问的API。这极大地减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动。
模型与数据库的关系
模型负责业务对象和数据库的关系映射
ORM是“对象-关系-映射”的简称,主要任务是:
1.根据对象的类型生成表结构
2. 将对象、列表的操作,转换为sql语句
3. 将sql查询到的结果转换为对象,类表
为什么要用模型?
Model是MVC框剪中重要的一部分,主要负责程序中用于处理数据逻辑的部分。通常模型对象负责在数据库中读取数据。
它实现了数据模型与数据库的解耦,即数据模型的数据不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库。
配置Mysql数据库
1.在当前环境中安装mysql
1 sudo apt-get install mysql-server
2 sudo apt install mysql-client
3 sudo apt install libmysqlclient-dev
2.在当前的python环境中安装pymysql
1 pip3 install pymysql
3.在mysql中创建数据库
1 creat database mydb default charset=utf8
4.在Django项目中配置数据库
修改settings.py文件中的DATABASE配置项
1 DATABASES =[
2 'default':{
3 'ENGINE':'django.db.backends.mysql',
4 'NAME':'mydb', #选择数据库的名,确认你的mysql中有这个库
5 'USER':'root',
6 'PASSEORD':'123456',
7 'HOST':'localhost',
8 'PORT':'3306',
9 }
10 ]
5.告诉Django在接下来的mysql操作中使用pymysql
打开mysite/__init__.py ,写入以下代码导入pymydql:
1 import pymysql
2 pymysql.install_as_MySQLdb()
开发流程
1.在models.py中定义模型类,要求继承自models.Model
1 from django.db import models
2
3 #Create your models here.
4
5 #用户信息模型
6 class Users(models.Model):
7 username = models.CharField(max_length=32)
8 password = models.CharField(max_length=32)
9 email = models.CharField(max_length=50)
10
11 #class Meta:
12 # db_table = 'polls_users' #指定表名
上面的指定表名的两行内容可以不写,django会自动生成一个表名。
例如:如果应用的名称为polls,则生成的表名wiepolls_users。
2.把应用加入settings.py的installed_app项
编辑mysite/settings.py文件,并将项目应用文件名添加到INSTALLED_APPS中
1 INSTALLED_APPS = [
2
3 'django.contrib.admin',
4
5 'django.contrib.auth',
6
7 'django.contrib.contenttypes',
8
9 'django.contrib.sessions',
10
11 'django.contrib.messages',
12
13 'django.contrib.staticfiles',
14
15 'myweb',
16 ]
3.生成迁移文件
python3 manage.py makemigtations
4.执行迁移
python3 manage.py migrate
5.使用模型进行操作