大家好,这是皮爷给大家带来的最新的学习Python能干啥?之Django教程的进阶版。
在之前《用Django全栈开发》系列专辑里面,皮爷详细的阐述了如何编写一个完整的网站,具体效果可以浏览线上网站:Peekpa.com
从进阶篇开始,每一篇文章都是干货满满。这一节,我们来讲述一下,在Django中,如何花式玩转pymongo。pymongo如何模糊查询,排序
皮爷的每一篇文章,都配置相对应的代码。这篇文章的代码对应的Tag是“Advanced_02”。
前瞻回顾
在上一节《用Django全栈开发(进阶篇)——01. 如何让Django连接MongoDB》,我们主要讲述了如何使用Django连接MongoDB数据库,并从里面读取数据的方法。
整体浏览
本文大概将会讲述以下内容:
- 基本的增删改查;
- 修改器的应用
由于内容很多,所以分开文章来说。接下来,就由我来给大家讲述以下如何玩转PyMongo。其实你只要会玩了PyMongo,MongoDB也就基本会个80%了,因为这俩差不多的。不信,你瞧。
插入
插入,非常的简单,PyMongo提供的插入函数主要有两个:
self.collection.insert()
self.collection.insert_many()
这里,insert()
主要是插入单个数据,插入的内容为字典类型
的数据即可。
insert_many()
则是插入一组数据,一个数组,里面存放的是字典类型的数据
。
具体可参考的代码,是我当初创建地震数据库信息的时候。从核心数据库读取的100条数据,然后直接调用insert_many()
方法插入到新的数据库中。
查找
我们在上一篇的例子中,将100条地震信息全部显示,通过的是一条:
list_data = self.collection.find()
来找到的。这个显然是返回了全部的数据。可以看到,如果调用count()
方法,返回的数据是100:
count = list_data.count()
print(count)
#结果出入的是:100
这里要注意一下,这个.count()
是PyMongo里面的方法,这个和MongoDB里面的.count()
是一样的,返回的是cursor的结果数目。
接下来,我们来介绍一下关于搜索更加丰富的用法。
指定搜索条件精确查找
在实际开发中,很多情况,我们并不需要将全部数据都返回,可能只需要返回符合条件的特定数据,比如某天的数据,比如某个ID的数据,这种数据精确查找。
我们页面顶部右侧有个搜索输入框,我们就来通过这个给大家展示一下条件搜索怎么做:
这的搜索,我们主要是以地名为关键字的搜索。
首先,我们来到front/template/datacenter/jpearth/manage.html
里面,来确认一下这个form是什么形式发送的关键字:
<form action="" method="get" class="form-inline ml-auto">
<div class="form-group mr-4">
<label for="title-input">标题:</label>
<input type="text" class="form-control" name="