黑马程序员技术交流社区

标题: 【郑州校区】python课堂笔记之django-day01(2) [打印本页]

作者: 谷粒姐姐    时间: 2018-11-6 10:53
标题: 【郑州校区】python课堂笔记之django-day01(2)
模型类设计
在应用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在生成的管理页面上显示哪些内容。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2