关灯
护眼 字体:大
中
小
上一章
章节列表
下一章
4.3.1 生成初始数据
在项目的bin文件夹下有一个generate_data.py文件,文件中的代码如图4-14所示。
图4-14 generate_data.py文件中的代码
在本地启动 MongoDB,运行这个文件中的代码,则会在本地 MongoDB 中创建一个名为“chapter_4”的数据库,并在其中创建一个名为“people_info”的集合。初始状态会向集合中插入19条数据,如图4-15所示。
图4-15 初始数据
提示:
“初始数据生成程序生成”的人名、年龄和地址都是随机拼接的,因此每一位读者生成的初始数据都是不一样的。但可以确定的是,人名“小四”和“小六”中间没有“小五”。
4.3.2 实现“查询数据”功能
查询数据对应了DataBaseManager类里面的query_info()方法。在初始状态下,这个方法返回的是三条假数据,如图4-16所示。
图4-16 一开始query_info方法返回三条假数据
在图4-16中,方框框住的代码为:
现在的目标是,用 query_info()方法查询 MongoDB,并以列表的形式返回集合里面的所有数据。
由于无论是查询、增加、修改,还是删除数据,都会涉及数据库连接,因此,可以先在__init__()方法中创建数据库连接对象,这样在后面的其他方法中都能够直接使用,不需要多次初始化数据库连接。
1.创建数据库连接对象
修改__init__()方法中的代码,连接数据库并定位到people_info集合。见代码4-1。
代码4-1 构造函数
其中,主要代码说明如下。
● 第5行代码:创建MongoDB的连接。
● 第6行代码:指定使用“chapter_4”数据库。
● 第7行代码:指定使用“people_info”集合。
2.查询集合中所有“deleted”字段为0的信息
接下来完成query_info()方法,查询集合中所有“deleted”字段为0的信息。见代码4-2。
代码4-2 查询所有deleted为0的数据。
其中,主要代码说明如下。
● 第8行代码:“self.handler.find({'deleted': 0},{'_id': 0})”查询到所有deleted字段为0的数据,去掉ObjectId以后返回。再使用Python的list()方法把pymongo返回的对象转换为包含字典的列表。
● 第9行代码:将转换成的包含字典的列表返回。
完成以后的代码如图4-17所示。
图4-17 完善__init__()和query_info()方法
在虚拟环境中,使用“Ctrl+C”组合键关闭网站程序,然后再重新启动。刷新浏览器后可以看到,数据库中的信息已经成功显示在网页中了。
对比数据库中的数据可以发现,网页显示的内容与数据库中的内容是一致的,如图4-18所示。
图4-18 成功显示数据库中的数据
4.3.3 实现“添加数据”功能
添加数据的逻辑如下:
(1)如果people_info集合中没有数据,那么添加的人员工号为“1”。
(2)如果people_info中有数据,那么新的人员工号是“已有最大工号加1”。
(3)插入数据。
1.查询已有工号
首先需要查询people_info集合,寻找当前最大的工号。根据前面介绍的添加逻辑中的(1)和(2)两点,完善_query_last_id()方法,见代码4-3。
代码4-3 查询people_info寻找最大工号
其中,主要代码说明如下。
● 第10行代码:首先查询people_info集合,以“id”字段倒序排列,只取倒序排列以后的第1条数据,即id最大的那一条数据。
● 第11行代码:如果people_info不为空,那么if last_info判断语句会执行if左边的语句,并且变量last_info可以像列表一样读取下标为0的元素,再读取这个元素的id,这就是当前最大的id了,读取以后返回。如果people_info集合是空的,那么if last_info判断语句会执行else右边的语句,返回整数0。
2.添加新数据
add_info()方法首先调用_query_last_id()方法获得当前最大的id,然后把这个id加1作为新的id。再将新的id放到参数需要插入的字典“para_dict”中并插入数据库中。具体代码如下:
代码4-4 添加新数据
其中,主要代码说明如下。
● 第13、14行代码:获取当前最新id并加1。
● 第15行代码:把新的id添加到即将加入数据库的para_dict字典中。
● 第16~20行代码:把数据插入MongoDB中。为了防止在插入过程中出现问题,使用try…except Exception把插入的代码“包”起来,这样可以在插入数据出错时把报错信息打印出来。
代码如图4-19所示。
图4-19 添加新数据的相关代码
3.测试添加数据
添加好数据之后,重新启动网站。
(1)刷新网页以后,添加一条新的人员信息并单击“添加”按钮,如图4-20所示。
图4-20 添加新的人员信息
(2)可以发现新的人员信息已经被添加成功,如图4-21所示。
图4-21 新的人员信息添加成功
m.qiduwx.com提示您,本章没有阅读完,点击下一页进入下一页阅读!
上一章
章节列表
下一章