week6 10 后端backend server和mongoDB通信
0 之前我们maogoDB用的是在线的mlab
在线他们帮我们做好了model 也就是那个schma
其实python也有类似的包 帮我们定义这些model
但是呢
我们自己来做吧
用一个传统的意义上mongoDB 就是 insert select来操作数据库
就是在不用其他类库 定义的model
我们如何操作数据库
我们这次用本地mongoDB
因为我们以后要做网络爬虫
这么爬下来的数据都会放在mongoDB里面储存
会很多 如果我们用mlab 那么将来把数据导出的时候就很不方便
所以 建议部署在本地
用法其实和mlab没啥区别
去官网https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

安装提示4步安装


当然也可以直接下载下来 解压缩安装

都可
第三种方法(我安装的这个,我是因为网络原因)
https://www.howtoing.com/how-to-install-mongodb-on-ubuntu-18-04
安装完成
新版本执行下面命令

因为是按第三种 安装的老版本的所以我的start命令不一样 具体看https://www.howtoing.com/how-to-install-mongodb-on-ubuntu-18-04
sudo systemctl start mongodb
本地mangodb自带工具mongo

显示现有的数据库

切换数据库

数据库有很多表(collections)

use这个命令除了可以切换数据库 还能创建数据库 如果有就切换到 没有就创建

但是如果你没插数据进去 他不会创建 必须有数据
我们现在弄点数据倒进数据库 插两条条数据


我们发现insert只能插一条,一条一条的插
我们再来一条

这里有个导入导出数据方便的工具 注意再是CMD命令行里面打命令 并不是在mongo shell里面

mongoexport
mongoimport --db tap-news --collection news --drop week6_demo_news.json
导入数据到数据库 并制定导入数据文件名称
drop是存在的话 就替代
mongoexport --db tap-news --collection news --out week6_demo_news.json
从数据库导出数据并命名
如何删除数据库
use +数据库名 切换到某个数据库然后执行
db.dropDatabase删除数据库
下面使用python操作mongodb
安装一个库 为了以后别人方便安装 我们写到一个配置文件里面




我们这个pymongo想单独独立出来 谁用 就来调用就行了
所以我们

创建工具文件夹
主要为了复用方便(解耦)


这个MongoClien类t实现了维持一个连接数为10的连接池(为了数据库性能)

这样保证了单例模式
不管有多少模块import我们这个client 自始至终我们只有一个连接连接到mongodb
增删改查可以在这定义函数
下面我们去测试吧
看能不能连上数据库
新建一个测试文件




大小写敏感

那么我们改一下看看



然后 我们将注释放开再看看


发现demo(collections)木有了 drop了
这验证了可以client操作数据库
week6 10 后端backend server和mongoDB通信的更多相关文章
- 第 10 章 MySQL Server 性能优化
前言: 本章主要通过针对MySQL Server(mysqld)相关实现机制的分析,得到一些相应的优化建议.主要涉及MySQL的安装以及相关参数设置的优化,但不包括mysqld之外的比如存储引擎相关的 ...
- ArcGIS 10.3 for Server新特性介绍
ArcGIS10.3的正式版立即在美国Esri全球用户大会推出.中国的正式发行时间预计在Esri中国的用户大会.以下就将用户比較关心的ArcGIS 10.3 for Server的新特性给大家进行简单 ...
- 【转】ArcGIS 10.1 for Server 架构
前一段时间在博客中公布了我们的计划,我们采用博客的形式将对ArcGIS10.1 for Server进行全面介绍.但这种形式有一定的遗憾:缺少互动的空间,所以我们希望广大爱好者能将自己感兴趣的话题在博 ...
- 【ArcGIS 10.2新特性】ArcGIS 10.2 for Server常见问题
1.ArcGIS 10.2有无测试版程序? 10.2没有正式的测试版程序,但是我们计划发布两个早期cuts软件给国际经销商.选中的用户和合作伙伴. 2.微软Azure云的ArcGIS forServe ...
- 【ArcGIS 10.2新特性】ArcGIS 10.2 for Server新特性
ArcGIS forServer相关的很多重大消息,如与Portal for ArcGIS进行了集成,提供对实时数据支持.离线地图使用. 1.与Portal for ArcGIS集成 用户能够配置Po ...
- ArcGIS 10.1 for Server 扩展开发(SOE)
原文连接:http://blog.csdn.net/arcgisserver_book/article/details/7869368 第一章为什么使用SOE 在ArcGIS 10.1中ArcGIS ...
- Ubuntu 16.10 Apache PHP Server
/******************************************************************************************* * Ubunt ...
- ArcGIS 10.1 for Server安装教程系列—— Linux下的单机安装
http://www.oschina.net/question/565065_81231 因为Linux具有稳定,功能强大等特性,因此常常被用来做为企业内部的服务器,我们的很多用户也是将Ar ...
- ArcGIS 10.3 for Server 在windows下的安装教程
原文:ArcGIS 10.3 for Server 在windows下的安装教程 以下是10.2的教程,10.3同样适用. 许可文件: ArcGIS For Server10.3许可文件 - 下载频道 ...
随机推荐
- CNN卷积层基础:特征提取+卷积核+反向传播
本篇介绍卷积层的线性部分 一.与全连接层相比卷积层有什么优势? 卷积层可以节省参数,因为卷积运算利用了图像的局部相关性——分析出一小片区域的特点,加上Pooling层(汇集.汇聚),从附近的卷积结果中 ...
- Webbrowser中IHTMLElement、IHTMLElement2、IHTMLDocument2、IHTMLDocument2属性介绍
一.IHTMLElement接口 ele.click -----------点击事件 ele.setAttribute(const strAttributeName: WideStri ...
- es6基础(5)--数值扩展
{ //Number.isFinite数字是有尽的 console.log(Number.isFinite(15));//true console.log(Number.isFinite(NaN)); ...
- python之格式化输出(3种方式)
python3.6后支持3种格式化输出方式,其中前两种为%-formatting及str.format ,第三种即为 f-string. 1.%-formatting 据传该格式化方法源于C.. &g ...
- 关于微信小程序更新内容后手机上不能及时显示的办法
这几天一直在做微信小程序的二次开发,每天都要发布程序,但是发布之后微信上查看小程序和以前的一模一样,丝毫没有改变,但是我再本地上却改变了,而且没有开的不校验合法域名那个.这是为啥呢????? 这是跟小 ...
- sql生成随机不重复字符串 可指定长度
存储过程: create procedure dbo.GetRandStr () output) AS BEGIN ), ), @ss varchar DECLARE @I INTEGER, @cou ...
- android开发 静态碎片布局实现
实现思维: 1.需要写2个或者多个子布局 2.写一个Java的class去实现将子布局与父类布局铺满.(一个子布局对应一个class) 3.在父类布局中导入fragment布局,并且添加android ...
- CentOS7最小化安装-Linux-1
CentOS 7的安装其实很简单,主要是网络配置. 选英文.设置时区等 最小化安装 先启动一个网络 Begin 吧 在安装的时候设置好root密码.很简单 别去点安装tools. 等待安装完成后,点击 ...
- iOS如何把所有页面状态栏的字体颜色都设置为白色
第一步:在info.plist中添加一个字段:view controller -base status bar 设置为NO 第二步:在一个所有界面都继承的父类里添加: if (IOS7_OR_LATE ...
- 21纯 CSS 创作文本滑动特效的 UI 界面
原文地址:https://segmentfault.com/a/1190000014842868 简化版地址:https://scrimba.com/c/cgaZLh6 感想:笨蛋,想不出自己的东西. ...