模型层
模型层主要负责与数据库之间的通信,管理数据的增、删、改、查。
这里使用MYSQL数据库,想要在djando中使用mysql,需要安装mysqlclient库,linux下输入
sudo apt list --installed|grep -E'libmysqlclient-dev|python-dev'
若无输出则需先安装
sudo apt-get install python3-dev default-libmysqlclient-dev
之后才可安装
pip3 install mysqlclient
mysqlclient依赖于default-libmysqlclient-dev
①创建数据库:
进入mysql
mysql -uroot -p
后执行
create database databasename default charset utf8
default charset utf8为配置中文(仅存英文可不需要)
②配置数据库:
修改settings.py中DATABASES中的数据库,把’NAME’:db.sqlite3修改为databasename,
‘ENGINE’由’django.db.backends.sqlite3’修改为’django.db.backends.mysql‘.
加上:
’USER‘:‘root’,
‘PASSWORD’:’***’
‘HOST’:‘127.0.0.1’
‘POST’:3306
其中post与host可自行调整,mysql默认端口即为3306
DATABASES = {
'default': {
'NAME':'databasename',
'ENGINE':'django.db.backends.mysql',
'USER':'root',
'PASSWORD':'***',
'HOST':'127.0.0.1',
'POST':'3306'
}
}
模型是django.db.models.Model的一个子类。
一个模型类代表一张数据表。
模型类中的每一个属性都代表着数据库中的一个字段。
每一个对象就代表着表中的一个数据行
模型是数据交接的接口,是表示和操作数据库的方法和方式。
ORM框架
对象关系映射,使用类和对象对数据库进行操作,避免了sql语句的使用。
1、建立了类与数据表的连接关系,通过面向对象的方式来操作数据库。
2、根据类生成表。
3、通过简单的配置就可以进行数据库的切换。
优点:
1、数据库与模型的解耦。
2、面向对象编程。
缺点:
1、有性能损失
2、对于复杂业务,实现成本较高(需要学习ORM框架)
定义数据表表:
在models.py下定义
(可以是项目下的,也可是APP下的。)
from django.db import models
# Create your models here.
class mymodel(models.Model):
#models下有很多参数
name=models.CharField('名称',max_length=50,default='')
#精度为2,长度为7,eg:00000.00
times=models.DecimalField ('价钱',max_digits=7,decimal_places=2,default=0.0)
定义之后,django可以将定义迁移到数据库中。
需要执行两条命令:
1、生成迁移文件:
python3 manage.py makemigrations
2、执行迁移脚本程序:
python3 manage.py migrate
执行后查看该数据库,django会自动定义一系列表单。
最后一个myapp_mymodel便是我自己刚刚创建的。
查看表单:
若不指定主键,则自动添加一个自增字段id为主键。
数据库中的表名为:
APPname_Tablename