0
点赞
收藏
分享

微信扫一扫

Django学习记录9

产品喵dandan米娜 2022-01-24 阅读 49

模型层

模型层主要负责与数据库之间的通信,管理数据的增、删、改、查。

这里使用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

举报

相关推荐

0 条评论