Django-MVT之M层总结

一、模型类设计

在应用models.py中设计模型类。
必须继承与models.Model类。

1)设计BookInfo类。
创建图书类 一类

class BookInfo(models.Model):

# btitle:图书名称   models.CharField:字符串类型  max_length:最大长度
btitle = models.CharField(max_length=20)

# bpub_data:图书出版时间,需要用到日期类型   
bpub_data = models.DateField()

2)设计HeroInfo类。
创建英雄人物类 多类

class HeroInfo(models.Model):

# hname:英雄名
hname = models.CharField(max_length=20)

# hgender:英雄性别  models.BoolenaField:布尔类型      default=False:默认值为False
hgender = models.BooleanField(default=False)

# hcomment:备注技能
hcomment = models.CharField(max_length=120)

# hbook:关系属性   建立BookInfo与HeroInfo之间的一对多关系
hbook = models.ForeignKey("BookInfo")

Models.ForeignKey可以建立两个模型类之间一对多的关系,django在生成表的时候,就会在多端的表中创建一列作为外键,建立两个表之间一对多的关系。

模型类生成表
3)生成迁移文件
命令:python manage.py makemigrations
迁移文件是根据模型类生成的。
Django-MVT之M层总结_第1张图片
4)执行迁移生成表

命令:python manage.py migrate
根据迁移文件生成表。
生成表名的默认格式:
应用名_模型类名小写
sudo apt-get install sqliteman 安装sqlite
Django-MVT之M层总结_第2张图片

二、通过模型类操作数据表

进入项目shell的命令:
python manage.py shell
以下为在相互shell终端中演示的例子:
首先导入模型类:
from booktest.models import BookInfo,HeroInfo

1、向booktest_bookinfo表中插入一条数据。

>>> from booktest.models import BookInfo
>>> b=BookInfo()
>>> b.btitle = '三国演义'
>>> from datetime import date
>>> b.bpub_date = date(1990,10,10)
>>> b.save()
  1. 查询出booktest_bookinfo表中id为1的数据。
>>> b2 = BookInfo.objects.get(id=1)
  1. 在上一步的基础上改变b对应图书的出版日期。
 >>> b2.bpub_date = date(1989,10,21)
 >>> b2.save()
  1. 紧接上一步,删除b对应的图书的数据。
 >>> b2.delete()
  1. 向booktest_heroInfo表中插入一条数据。
>>> from booktest.models import BookInfo,HeroInfo
>>> b=BookInfo()
>>> b.btitle='天龙八部'
>>> from datetime import date
>>> b.bpub_date=date(1990,10,10)
>>> b.save()

>>> h=HeroInfo()
>>> h.hname="段誉"
>>> h.hgender=False
>>> h.hcomment='降龙十八掌'
>>> h.hbook=b
>>> h.save()
>>> h2=HeroInfo()
>>> h2.hname="乔峰"
>>> h2.hcomment="六脉神剑"
>>> h2.hbook=b
>>> h2.save()

  1. 查询图书表里面的所有内容。
>>>BookInfo.objects.all()

三、关联操作

Django-MVT之M层总结_第3张图片
1) 查询出id为2的图书中所有英雄人物的信息。

>>> b=BookInfo.objects.get(id=2)
>>> b.heroinfo_set.all()

四、后台管理

1)本地化
语言和时区的本地化。
修改settings.py文件。
Django-MVT之M层总结_第4张图片
2)创建管理员
命令:python manage.py createsuperuser
Django-MVT之M层总结_第5张图片
3)注册模型类
在应用下的admin.py中注册模型类。
告诉djang框架根据注册的模型类来生成对应表的管理页面。
Django-MVT之M层总结_第6张图片
b = BookInfo()
str(b) --------->bookinfo.object
str -------->return self.btitle
4)自定义管理页面
自定义模型管理类。模型管理类就是告诉django在生成的管理页面上显示哪些内容。
Django-MVT之M层总结_第7张图片

你可能感兴趣的:(框架)