在应用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
迁移文件是根据模型类生成的。
4)执行迁移生成表
命令:python manage.py migrate
根据迁移文件生成表。
生成表名的默认格式:
应用名_模型类名小写
sudo apt-get install sqliteman 安装sqlite
进入项目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()
>>> b2 = BookInfo.objects.get(id=1)
>>> b2.bpub_date = date(1989,10,21)
>>> b2.save()
>>> b2.delete()
>>> 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()
>>>BookInfo.objects.all()
>>> b=BookInfo.objects.get(id=2)
>>> b.heroinfo_set.all()
1)本地化
语言和时区的本地化。
修改settings.py文件。
2)创建管理员
命令:python manage.py createsuperuser
3)注册模型类
在应用下的admin.py中注册模型类。
告诉djang框架根据注册的模型类来生成对应表的管理页面。
b = BookInfo()
str(b) --------->bookinfo.object
str -------->return self.btitle
4)自定义管理页面
自定义模型管理类。模型管理类就是告诉django在生成的管理页面上显示哪些内容。