模型类设计 在应用models.py中设计模型类。 必须继承与models.Model类。 1) 设计BookInfo类。 2) 设计HeroInfo类。 Models.ForeignKey可以建立两个模型类之间一对多的关系,django在生成表的时候,就会在多的表中创建一列作为外键,建立两个表之间一对多的关系。 模型类生成表1) 生成迁移文件 命令:python manage.py makemigrations 迁移文件是根据模型类生成的。 2) 执行迁移生成表 命令:python mange.py migrate 根据迁移文件生成表。 生成表名的默认格式: 应用名_模型类名小写 通过模型类操作数据表进入项目shell的命令: python manage.py shell 以下为在相互shell终端中演示的例子: 首先导入模型类: from booktest.models import BookInfo,HeroInfo 1)向booktest_bookinfo表中插入一条数据。 b = BookInfo() #定义一个BookInfo类的对象 b.btitle ='天龙八部' #定义b对象的属性并赋值 b.bpub_date = date(1990,10,11) b.save() #才会将数据保存进数据库 2)查询出booktest_bookinfo表中id为1的数据。 b = BookInfo.objects.get(id=1) 3)在上一步的基础上改变b对应图书的出版日期。 b.bpub_date = date(1989,10,21) b.save() #才会更新表格中的数据 4)紧接上一步,删除b对应的图书的数据。 b.delete() #才会删除 5)向booktest_heroInfo表中插入一条数据。 h = HeroInfo() h.hname = '郭靖'
h.hgender = False h.hcomment = ‘降龙十八掌’ b2 = BookInfo.objects.get(id=2) h.hbook = b2 #给关系属性赋值,英雄对象所属的图书对象 h.save() 6)查询图书表里面的所有内容。 BookInfo.objects.all() HeroInfo.objects.all() 关系操作 1)查询出id为2的图书中所有英雄人物的信息。 b = BookInfo.objects.get(id=2) b.heroinfo_set.all() #查询出b图书中所有英雄人物的信息 后台管理1) 本地化 语言和时区的本地化。 修改settings.py文件。 2) 创建管理员 命令:python manage.py createsuperuser 1) 注册模型类 在应用下的admin.py中注册模型类。 告诉djang框架根据注册的模型类来生成对应表管理页面。 b = BookInfo() str(b) __str__ 2) 自定义管理页面 自定义模型管理类。模型管理类就是告诉django在生成的管理页面上显示哪些内容。
|