Overview:

  1. 环境
  2. 前言
  3. 效果图
  4. mongdb安装
  5. 代码涉及知识点
  6. 关于windows的cmd下执行python文件显示中文乱码的问题
  7. 总结

0.环境

操作系统:Windows

Python版本:3.6.0

MongoDB版本:4.0.6

1.前言

同学们还记得,前一次小胖用python结合json文本存储实现的用户管理系统么?

注:详见「手把手教你用python实现一个简单用户管理系统

现在小胖将这个代码进行了升级,改成用mongodb来存储用户数据。这样又能学到python操作mongodb的用法了有没有。

2.效果图

2.1 修改密码

2.2 录入用户

2.3 查找用户

2.4 删除用户

2.5 mongdb 中的数据格式

3.mongdb安装

3.1 下载

下载链接:

https://www.mongodb.com/download-center/community

注:官网下载很慢,同学自己搞个会员加速下,你懂的。

3.2 安装

基本是一路下一步,需要注意的地方小胖网上找了几张图来说明。

这里可以自定选择需要安装的东西(小胖选择完全安装,随便你们):



选择安装路径:

但是需要注意不要选择一个叫 "install mongoDB compass" 的东西,否则可能要很长时间都一直在执行安装,MongoDB Compass 是一个图形界面管理工具。



注:小胖自己电脑上下载的是:mongodb-win32-x86_64-2008plus-ssl-4.0.6-signed.msi 这个版本

3.3 配置环境变量

找到mongodb的安装目录,像下面这样配置就行了:

3.4 启动服务端

小胖将mongodb数据目录指定到了D:\mongodb\底下,这个底下会生成两个目录,data和log。接下来在D:\mongodb\data\这个路径底下再新建一个目录db。

接下来打开cmd,在命令行里执行以下命令:

mongod --dbpath "D:\mongodb\data\db"。

你就会看到mongodb启动了,像下面这样:

3.5 客户端连接

cmd执行mongo即可

如果mongodb服务端监听在非本地地址,后面添加--host参数填入目标ip地址即可:

4.代码涉及知识点

4.1 依赖包安装

pip install pymongo

4.2 pymongo的用法

连接数据库:

插入数据



insert和save的区别如下:

  • 在插入数据时不指定'_id'这个字段的情况下没有区别
  • 在插入数据时指定'_id'这个字段的情况下,如果插入的数据和数据库已存在的'_id'相同,save会更新数据库的值,而insert会报错,报错内容为键重复

注:本文末提供的代码中,插入数据没有指定'_id',在这种情况下,mongodb会自动帮你生成一个'_id',类似这样{'_id': ObjectId('5c96f27b0988c31554f2bd64'), '用户名': 'hahaha444', '年龄': '48', '电话': '44444'},所以用save还是insert在这里没有区别

查询数据(查询不到则返回None)



更新数据



删除数据

5.关于windows的cmd下执行python文件显示中文乱码的问题

主要是编码格式的问题,windows默认是gbk编码格式。

方法如下:

  1. 确保py文件是UTF-8编码存档的。
  2. 在CMD窗口输入CHCP 65001 回车。(65001是win系统UTF-8的代码)

然后就能正常显示了

6.总结

mongodb的使用还比较复杂的,同学们只要学会了基本用法,就可以开始学着敲本文的代码了。

如果同学们自己实现了,别忘了留言告诉我。有问题也可以留言给我,我们一起讨论。

关注公众号「Python专栏」,后台回复:zsxq08,获取本文全套代码。

当用户管理系统遇上python和mongodb后……的更多相关文章

  1. 【ArcGIS遇上Python】ArcGIS Python批处理入门到精通实用教程目录

    目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 Python语言是目前很火热的语言,极大的促进了人工智能发展.你知道在ArcGIS中也会有python的身影吗?事实上,在ArcG ...

  2. C++-Typedef结构体遇上指针

    继Typedef遇上结构体数组后,我们又产生了新的疑问. 上一期地址:https://www.cnblogs.com/lemaden/p/10122929.html 昨天一位朋友又问我了,说结构体数组 ...

  3. python用户管理系统

    学Python这么久了,第一次写一个这么多的代码(我承认只有300多行,重复的代码挺多的,我承认我确实垃圾),但是也挺不容易的 自定义函数+装饰器,每一个模块写的一个函数 很多地方能用装饰器(逻辑跟不 ...

  4. K2 BPM_当K2遇上医药,用流程打通企业的任督二脉_业务流程管理系统

    据调查,如今仍有60%的医药企业,存在合规经营和利润下降的困扰,在“研”.“产”.“供”.“销”的运营过程中,时时伴随着严苛的管理政策和法规.如何加强企业跨部门.跨组织.跨业务线的执行能力,始终是管理 ...

  5. 使用Python操作MongoDB

    MongoDB简介(摘自:http://www.runoob.com/mongodb/mongodb-intro.html) MongoDB 由C++语言编写,是一个基于分布式文件存储的开源数据库系统 ...

  6. MVC遇上bootstrap后的ajax表单模型验证

    MVC遇上bootstrap后的ajax表单验证 使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jqueyr.validate的话只有使用他自己的样式了, ...

  7. Python 操作 mongodb 数据库

    原文地址:https://serholiu.com/python-mongodb 这几天在学习Python Web开发,于 是做准备做一个博客来练练手,当然,只是练手的,博客界有WordPress这样 ...

  8. 当创业遇上O2O,新一批死亡名单,看完震惊了!

    当创业遇上O2O,故事就开始了,总投入1.6亿.半年开7家便利店.会员猛增至10万……2015半年过去后,很多故事在后面变成了一场创业“事故”,是模式错误还是烧钱过度?这些项目的失败能给国内创业者带来 ...

  9. LoadRunner - 当DiscuzNT遇上了Loadrunner(下) (转发)

    当DiscuzNT遇上了Loadrunner(下) 在之前的两篇文章中,基本上介绍了如何录制脚本和生成并发用户,同时还对测试报告中的几个图表做了简单的说明.今天这篇文章做为这个系列的最后一篇,将会介绍 ...

随机推荐

  1. VB 字符串转换为UTF-8

    dim e as object Set e=CreateObject("MSScriptControl.ScriptControl") e.Language = "jav ...

  2. ArcGIS中CGCS2000投影坐标数据转CGCS2000地理坐标数据

    拿到一批数据是CGCS2000投影坐标数据(单位:米),需要转成CGCS2000地理坐标数据(单位:经纬度). 在ArcGIS10.2.2中操作如下: 1.工具箱中选择“Project”工具,如下: ...

  3. twig模板的进一步学习以及在symfony当中的使用

    首先,twig可以理解为用于输出html代码的,虽然用PHP等其他语言也可以输出,但是twig更为简洁高效,同时twig模板被编译成原生的php类缓存起来,所以才会这么快, 其实twig跟php类差不 ...

  4. scala_1

    scala 开发spark可以使用哪些语言: Python开发45% scala % java % 一.scala的概述 java基础上代码的简化版.功能的加强版 隐式转换 高阶函数 一个函数的参数是 ...

  5. IDEA 使用Mybatis效率飞起来的必备工具:MybatisCodeHelperPro 最新破解版,亲测可用!

    IDEA 2018.3.5 最新版本亲测可用. Git地址:https://github.com/pengzhile/MyBatisCodeHelper-Pro-Crack/releases 下载最新 ...

  6. springmvc是如何工作的

    上图便是springmvc的工作流程,看着条条框框的,其实说的直白一点,springmvc就是负责处理用户的需求(request/url),它的负责人(核心组件)就是前端控制器(DispatcherS ...

  7. 彻底卸载Windows Service

    前言,我使用Quartz.net + quartz.config + quartz_jobs.xml 写了个Windows Service,使用如下bat脚本执行服务的安装,启动,暂停,卸载 @ech ...

  8. vue 实现图片上传与预览,以及清除图片

    vue写原生的上传图片并预览以及清除图片的效果,下面是demo,其中里面有vue获取input框value值的方法以及vue中函数之间的调用 <!DOCTYPE html> <htm ...

  9. Golang实现requests库

    Golang实现requests库 简单的封装下,方便使用,像python的requests库一样. Github地址 Github 支持 GET.POST.PUT.DELETE applicatio ...

  10. django+javascrpt+python实现私有云盘

    代码稍后上,先整理下私有云盘的相关功能介绍. 1.登陆界面 2.首页展示,有个人目录.部门目录以及公司目录,针对不用的目录设置不同的权限控制. 3.个人信息展示 4.账号管理.账号信息展示 5.账号添 ...