Django model层 mysql_Django Model 模型建立

Django Model 模型

Django Model层是Django的数据模型层,每一个Model类就是数据库中的一张表;

我们需要注意下面几点:

model一般都是定义在不同的APP的models.py模块文件中,可以是一个,也可以是多个;

不同model之间可以相互关联,类似表直接的关联;

APP中一旦定义了model,必须将此APP添加到settings文件中;

且一定要记得运行makemigrations检查model更新和migrate同步数据模型在数据库中建表(这两个操作大家记得在哪里操作吗,之前的文章有写,快捷键就是Alt+Ctrl+R);

如何定义一个数据model模型

我们一起来看一下如何定义一个数据model模型,具体有哪些操作:

首先我们需要在APP中的models.py创建Model,我们用courses APP来操作一下

from django.db import models

class Course(models.Model):

name = models.CharField(max_length=50, verbose_name="课程名")

desc = models.CharField(max_length=300, verbose_name=u"课程描述")

degree = models.CharField(choices=(("primary", '初级'), ("middle","中级"), ("junior", "高级")), max_length=10, verbose_name='课程难度')

students = models.IntegerField(default=0, verbose_name="学习人数")

# 需要安装pillow,图片处理库

image = models.ImageField(upload_to="courses/%Y/%m", verbose_name="课程图片", max_length=100)

class Meta:

verbose_name = "课程"

verbose_name_plural = verbose_name

我们知道每一个Model类就是数据库中的一张表,那这段代码中我们定义了五个字段,代表相应的数据库表中也有五个字段,大家注意一下字段的类型(等一下我们再来讲解关于字段类型),

这个表其实就想当于以下代码:

create table courses_course(

id int not null primary key,

name varchar(50),

desc varchar(300),

degree varchar(10),

students int(11),

image varchar(100),

);

然后我们需要在数据库中生成数据表,执行makemigrations在app下建立migrations目录,并记录下所有关于models.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件,接着执行migrate将改动作用到数据库文件,比如产生table之类;

最后可以登录mysql数据库检查表是否创建成功,大家还记得怎么登录mysql数据库吗?

先开启mysql数据库,我是用的Winginx中的mysql数据库,所以我只需要在Winginx打开就好,然后在命令行工具中输入:

mysql -ufirst_project -p123456

我的用户名是first_project ,密码是123456

然后我们在数据库中查看表是否成功

use First_Project # 我的数据库是First_Project

show tables; # 查看所有表

4b4c6a634f1b8468b4a42eb5d7644d32.png

我们是不是能看到有一个courses_course表呀,然后输入命令行desc courses_course;

82c0d8a4bd9495439252bd8d8e4bc269.png

Field 字段类型

IntegerField:整型字段;

CharField:字符型字段,该字段类型有一个必需参数:max_length 在数据库水平限定了字符串最大长度;

ImageField:图像字段,能自动验证上传的对象是否为合法的图像;

FloatField:浮点字段;

AutoField:根据已有id自增长的整型唯字段,一般每个model类不需设置该字段,因为django会为每个model自动设置;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值