今天,小叮当来为大家继续分享Django干货~
主要内容有:常用的查询、常用字段类型及常用参数、表关系的实现
一、常用的查询
(资料图片仅供参考)
常用的查询方法总结
由于其使用方法在零基础入手Django(六):模型基础1中已经为大家介绍过,这里只挑选出来几个具有代表性的进行演示。
(1)使用order_by逆向排序
重新定义查询视图函数
在浏览器中访问
在Pycharm后台端,查看输出结果
可以看到,默认查询是按id正序排列。使用order_by方法后,我们成功使得输出按照age进行了逆向排列。
值得注意,在按age倒序输出时,相同age的数据还是按id从小到大排列了,例如age=18时,先输出了id=1的xdd才输出了id=2的小叮当。
这时我们就可以使用order_by,对多个字段进行排序,使得当age相同时,便按id从大到小进行排序。
在视图函数中添加如下语句:
在浏览器中访问后,在后台查看
(2)values将输出结果字典化
重新定义查询视图函数
在浏览器中查看
在pycharm后台端查看输出结果
(3)count查询数据总数
在查询视图函数中,添加如下代码
在浏览器中查看
在pycharm后台端查看结果
2.常用的查询条件总结
定义查询视图函数
在浏览器中访问
在后台查看结果
其中值得注意的是,在django中使用条件查询时,相当于使用了sql语句中的where。其语法是:字段名__规则 (字段名和规则之间是两条下划线)
例如:
就相当于sql语句
select * from .... where city is null
二、常用字段类型及常用参数
常用的字段类型映射关系
在models.py中我们可以看到,我们只使用了AutoField(自增长类型)、CharField(字符类型)、IntegerField(整数类型)等数据类型。
其实,在Django中还有其它几种常用的字段类型,它们的映射关系如下
常用的字段类型总结如下:
Field的常用参数总结如下:
2.使用常用类型创建数据表
(1)我们在models.py中新建Field_Test模型类作为一张新的表
(2)在pycharm的tools中找到"Run manage.py Task..."
执行makemigrations model_test
(3)执行migrate model_test
(4)使用xshell进行查看
执行命令“mysql -u xdd(用户名) -p(输入密码)”
执行命令“use mydb;"
执行命令”show tables;“
执行命令”desc model_test_field_test;"
3.向表中插入数据
(1)重新定义添加数据的视图函数
(2)在浏览器中访问
(3)通过xshell进行查看
4.更新数据
(1)重新定义添加数据的视图函数
(2)在浏览器中访问
(3)通过xshell查看
可以看到,数据更新的时间已经自动更新。但是显示的更新的时间与我们真实的时间相差了8个小时~大家知道这是时区默认设置导致的即可。
值得注意,只有使用.save()方法更新数据,系统才会自动更新时间。而使用update方法更新,则不会调用auto_now自动更新时间。
三、表关系的实现
1.表关系示意图
2.示例
为了明确在django中如何创建丰富的表关系,小叮当为大家示例如下
(1)表关系图
假如有下面这几张表
它们的关系可以这样表示:
(2)在项目中新建app,并注册
在项目中新建名为db_test的app用来实现表关系。在Tools中打开Run manage.py Task...
执行命令“startapp db_test"
在项目处,右键将创建好的app下载下来
在项目的settings文件中注册创建好的app
(3)创建表
我们在建好的”db_test“的models.py中创建表。值得注意,当出现一对多,多对多,一对一等复杂关系时,我们一般先从”一“这一端来创建表。
在models.py中创建模型类如下:
在Pycharm的Tools中打开Run manage.py Task...
执行 makemigrations
执行 migrate
在xshell 的mysql中 执行 show tables;
执行desc db_test_department;查看学院信息表
执行 desc db_test_student; 查看学生信息表
可以看到,学生信息表中自动为我们关联生成了”department_id"外键,也就是department表的d_id
关于级联删除:
只有引用的数据全部删除后,才可以删除被引用表中的父类数据。例如,学院信息表中1代表计算机学院。在学生信息表中,小明、小红、小花都是计算机学院,他们的外键值都是1,想要在学院信息表中删除计算机学院,需要在学生信息表中先删除了引用计算机学院的小明、 小红、小花。
执行 desc db_test_course;查看课程表
执行 desc db_test_stu_detail; 查看学生详细信息表
可以看到,已经按照我们的设置,学生详细信息表和学生表建立了一对一的关系。
再次执行,show tables;
我们看到,我们已实现了学生表与课程表的多对多关系,系统已为我们自动生成了中间信息表“db_test_course_student"。
执行 desc db_test_course_student; 进行查看,结果如下
标签:
今天,小叮当来为大家继续分享Django干货~主要内容有:常用的查询、常用字段类型及常用参数、表关系的实现
目前永桂花园安居房B区项目住宅楼全部实现封顶,进入二次结构砌墙阶段。记者汪承贤摄新海南客户端、南海网
新华社哈瓦那5月2日电(记者林朝晖)哥伦比亚政府2日与反政府武装“哥伦比亚民族解放军”在古巴首都哈瓦那
智通财经APP获悉,啤酒股涨幅居前,截至发稿,百威亚太(01876)涨3 31%,报23 4港元;青岛啤酒(行情600600,
4月29日,摩登上海滩演出在浙江省杭州市余杭区瓶窑老街上演。“五一”假期期间,人们外出、消费热情高涨,
200倍单式票欲中亿元巨奖?结果真的中了4+0!双色球第49期开奖。在双色球历史开奖之中,我们常常会看到不少
1、word下划线怎么打首先我们打开一个Word文档,创建如下图的效果,把你的输入法切换到英文状态,
公司说明是否因此具有回购智能科技18 75%少数股权的义务。如是,进一步说明相关义务履行的时限、回购价格
阿根廷登革热确诊病例超过5 6万例。
据《世界体育报》报道,在巴萨宣布阿莱曼尼将在今年夏天离职后,小克鲁伊夫是否会留在巴萨引发了外界的关注
五一假期最后一天北京晴天继续控场紫外线偏强午后南风较大
想要买一辆称心的车型,对大多数人来说,都需要花费不少时间和精力,如果你正在考虑上汽大通22万左右买什么
北京时间3月16日消息,2021年斯诺克WST职业系列赛继续进行I组的较量。一场德比之战中,名将吕昊天轰出一杆
消息:中老铁路国际旅客列车开行以来,也带火了不少沿途的旅游景点。以前,需要转机或者转车才能到达的地方
1、肠系膜淋巴结炎多发于小儿,以不明原因的肚脐周围阵发性腹痛及发烧为特征。2、在肿大的淋巴结的压迫下导
1、坏账准备是每年年底按照应收账款余额的5%计提的。2、当不足5%时需要提足到5%。3、大于5%时要冲回大于部
针对中国国民党新北市长侯友宜提及,疫期间蔡英文、赖清德未关心新北市,“总统府”发言人林聿禅今天表示,
5月2日电,欧洲央行负责监管事务的AndreaEnria表示,欧洲银行业预计,加息对于利润的利好将会延续到明年。
人民网 呦呦鹿鸣,食野之苹”“星汉灿烂,若出其里”“老骥伏枥,志在千里。烈士暮年,壮心不已”……4
76人今日客场119-115力克绿军,大比分1-0领先。赛后,76人球员托拜亚斯-哈里斯接受采访时称赞了队友哈登,
军事题材电影以4 51亿暂居榜首,喜剧片奋起直追,以4 18亿位居第二。截至发稿影片已经获得了4 51亿票房成绩
美国刚刚传来的消息,加州金融监管机构接管了第一共和银行(FirstRepublic),这是自今年3月以来美国第三家银
“五一”假期第四天,全国铁路今天依旧保持在高位运行。铁路部门增加运力投放,保证大家的出行需求。在北京
据报道,曼城主帅瓜迪奥拉对31岁的内马尔没兴趣,反对球队在今夏引进他。在本赛季上半程,内马尔的表现出色
新华社杭州5月1日电(记者胡佳丽、周欣、李嘉)2023年“韵味杭州”全国游泳冠军赛1日在浙江杭州奥体中心游
噩耗传来!遗体被找到!,4月30日,根据九派新闻报道,湖南益阳11岁男生失联4天后在河里被找到,其舅舅称孩
当地时间5月1日,美国政府高官透露,拜登将在5月赴日本出席七国集团首脑会议广岛峰会,他将与日本首相岸田
经济观察网记者濮振宇2023上海车展期间,创维集团、创维汽车创始人黄宏生在接受经济观察网等媒体采访时表示
1、鹌鹑被取出内脏并洗净。2、用开水焯一下去血水,洗净备用。3、盐水中加入桂皮和香叶,水烧开,放入鹌鹑
浮光落向大地,距离朝阳升起尚有一段距离,却足以褪去长久披蒙在城市上空的阴影,显露出破败与荒芜的真实面
Copyright © 2015-2022 服装头条网版权所有 备案号:沪ICP备2022005074号-20 联系邮箱:58 55 97 3@qq.com