ORM
ORM 模式是一种为了解决面向对象与关系数据库存在的互相不匹配的现象技术.ORM在业务逻辑层和数据库层之间充当了桥梁的作用。
1.创建项目test
1.1进入虚拟环境h1
workon h1
1.2创建项目test
django-admin startprojects
1.3 django 默认的是sqlite3数据库(是一种轻量级的数据库) 我们将其修改mysql
在settings.py文件修改(需要先创建好数据库)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test ', #数据库名字,
'USER': 'root', #数据库登录用户名
'PASSWORD': 'mysql', #数据库登录密码
'HOST': 'localhost', #数据库所在主机
'PORT': '3306', #数据库端口
}
}
1.4 返回终端,进入test 目录,创建应用booktest
cd test
python manage.py startapp booketest
1.5将应用booktest注册到项目中:打开test2/settings.py文件,找到INSTALLED_APPS项,加入如下代码:
'booktest'
2定义模型类
* 模型类被定义在"应用/models.py"文件中,此例中为"booktest/models.py"文件。
* 模型类必须继承自Model类,位于包django.db.models中。
2.1打开booktest/models.py文件,定义模型类型
from django.db import models
#定义图书模型类BookInfo
class BookInfo(models.Model):
btitle = models.CharField(max_length=20)#图书名称
bpub_date = models.DateField()#发布日期
bread = models.IntegerField(default=0)#阅读量
bcomment = models.IntegerField(default=0)#评论量
isDelete = models.BooleanField(default=False)#逻辑删除
#定义英雄模型类HeroInfo
class HeroInfo(models.Model):
hname = models.CharField(max_length=20)#英雄姓名
hgender = models.BooleanField(default=True)#英雄性别
isDelete = models.BooleanField(default=False)#逻辑删除
hcomment = models.CharField(max_length=200)#英雄描述信息
hbook = models.ForeignKey('BookInfo')#英雄与图书表的关系为一对多,所以属性定义在英雄模型类中