日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

MongoDB之python简单交互(三)

發布時間:2025/7/14 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB之python简单交互(三) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python連接mongodb有多種orm,主流的有pymongo和mongoengine。

pymongo

安裝相關模塊

pip install pymongo

pymongo操作

  • 主要對象
MongoClient對象:用于與MongoDB服務器建立連接 DataBase對象:對應著MongoDB中的數據庫 Collection對象:對應著MongoDB中的集合 Cursor對象:查詢方法find()返回的對象,用于進行多行數據的遍歷
  • 主要方法
insert_one:加入一條文檔對象 insert_many:加入多條文檔對象 find_one:查找一條文檔對象 find:查找多條文檔對象 update_one:更新一條文檔對象 update_many:更新多條文檔對象 delete_one:刪除一條文檔對象 delete_many:刪除多條文檔對象
  • 交互實例
# test.py from pymongo import * def get_col():"""獲取一個集合對象"""try:# 連接mongodb,connect=False參數加上client = MongoClient(host='192.168.1.21',port=27017, username="admin", password="123", connect=False)# client = MongoClient("mongodb://admin:123@192.168.1.21") # 另一種寫法col = client.tms.eegpic # 獲取集合對象except Exception as e:raise AttributeError("連接出錯:{err}".format(err=e))else:return colif __name__ == "__main__":col = get_col()res = col.insert_one({'name':'cwp','age':24, 'sex':1}) # 插入一條數據col.insert_many([{'name': 'cwp', 'age': 24, 'sex': 1},{'name': 'hhh', 'age': 24, 'sex': 1}]) # 多條per = col.find_one() # 查詢一條per = col.find() # 查詢所有col.update_many({'sex': 1}, {'$set': {'name': 'haha'}}) # 更新一條col.delete_one({'sex': 1}) # 刪除一條

flask_pymongo操作mongodb

flask_pymongo是方便pymongo集成到flask框架中,用法和pymongo幾乎一樣。

  • 安裝orm
pip install flask_pymongo
  • 初始化
# extensions from flask_pymongo import PyMongomongo = PyMongo()# __init__.py app = Flask(__name__) mongo.init_app(app=app)# setting.py MONGO_URL = 'mongodb://username:passwd@localhost:27017/db' # 設置連接參數# 得到的mongo對象相當于上例的client對象,剩下的用法與pymongo幾乎一樣

flask_mongoengine操作mongodb

flask_mongoengine是mongoengine在flask框架的集成,mongoengine可以按照類似關系型數據庫來定義數據的結構,使得操作風格和關系型數據庫相似,可以使得代碼更好的維持MVC結構。

  • 安裝
pip install flask_mongoengine
  • 初始化配置
# extensions.py from flask_mongoengine import MongoEnginedb = MongoEngine()# setting.py MONGODB_SETTINGS = {'db': 'project1','host': '192.168.1.35','port': 12345,'username':'webapp','password':'pwd123' } MONGODB_CONNECT = False # 在第一次訪問數據庫是才打開連接# __init__.py from extensions import dbapp = Flask(__name__) app.init_app(app=app)
  • 定義數據庫model
# models.py from extensions import dbclass User(db.Document):"""用戶model"""meta = {'collection': 'todo', # 指定集合'ordering': ['-create_at'], # 指定查詢順序'strict': False, # 是否使用嚴格模式,默認是True'max_documents': 1000, # 文檔數'max_size': 2000000 # 字節數}email = db.Document.StringField(default='') # 設置默認值username = db.Document.StringField(max_length=50,required=True) # 最大長度,不能為空values = ListField(IntField(), default=[])class Book(db.Document):author = ReferenceField(User)通用參數: max_length:最大長度 required:是否要求一定存在這個字段 default: 默認值; unique:是否不能重復,true表示唯一 primary_key:是否作為主鍵 choices:枚舉,如:choices=[A,B,C],choices=((A,large),(B,small))或限制值
  • 常用的字段
StringField 字符串 BinaryField 二進制 PasswordField 密碼 URLField url格式字符串 EmailField email格式字符串 IntField 整數 FloatField 浮點數 BooleanField 布爾 DateTimeField 日期 DictField 字典 FileField GridFS存儲字段 ImageField 圖像文件存儲區域 ListField 數組類型 EmbeddedDocumentField 嵌入文件 ReferenceField 引用其他的model,相當于外鍵
  • 查詢
users = User.objects(username='xxx') # 獲取查詢對象 # 排序 users = User.objects(username='xxx').order_by("_id") # 限制返回 users = User.objects(username='xxx').limit(3) # 過濾器 first():返回第一個 all() : 返回列表 get(_id=xxx):通過id查詢 get_or_404:與.get()類似,但如果對象為DoesNotExist,則調用abort(404)。 first_or_404:與上面相同,除了.first()。 paginate:對QuerySet進行分頁。采用兩個參數,page和per_page。 paginate_field:從QuerySet中的一個文檔中分頁。參數:field_name,doc_id,page,per_page
  • 添加
user = User(username='xiaoming') user.save()
  • 更新
user = User.objects(username='xxx').first() user.update(email='626004181@qq.com')
  • 刪除
user = User.objects(username='xxx').first() user.delete()

python連接mongodb集群

# pymongo from pymongo import MongoClient client = MongoClient('mongodb://admin:123456@ip1:port,ip2:port,ip3:port')# mongoengine from mongoengine import connect client = connect('user', host='mongodb://admin:123456@ip1:port,ip2:port,ip3:port')# flask_mongoengine # setting.py MONGODB_SETTINGS = [{'db': 'project1','host': '192.168.1.21','port': 27017, }, {'db': 'project1','host': '192.168.1.21','port': 27017, }, ]

參考:

  • http://docs.mongoengine.org/projects/flask-mongoengine/en/latest/

  • http://www.pythondoc.com/flask-pymongo/

轉載于:https://www.cnblogs.com/cwp-bg/p/9473144.html

總結

以上是生活随笔為你收集整理的MongoDB之python简单交互(三)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费日韩 | 国内少妇精品 | 欧美国产免费 | 精品亚洲国产成人av制服丝袜 | 亚洲男女av | 无人在线观看高清视频 | 久久精品欧美一区 | 日韩毛片免费观看 | 夜久久 | 亚洲黄色片 | 女人张开双腿让男人捅 | 精品国产一区二区三区久久久 | 久久综合日本 | 欧美日韩综合在线 | www.天天综合 | 免费在线视频你懂的 | 日韩精品在线免费观看视频 | 手机在线看片 | 精品人妻无码在线 | 少妇又紧又色 | 国产人妻777人伦精品hd | 中日一级片 | 中文字幕一区二区人妻电影丶 | 欧美自拍偷拍一区二区 | 91在线精品入口 | 国产国产国产 | 妞干网精品 | 插插射射 | 少妇视频一区二区三区 | 写真福利片hd在线播放 | 貂蝉被到爽流白浆在线观看 | 毛片在线免费视频 | 午夜精品久久久久久久久久蜜桃 | 天堂在线视频网站 | 黄色喷水网站 | 精品久久久久久久久中文字幕 | 免费福利小视频 | 日韩欧美一区二区三区四区 | 亚洲香蕉视频 | 黄色正能量网站 | 乱色专区 | 免费黄色入口 | 日本少妇全体裸体洗澡 | 亚日韩| 欧美成人午夜剧场 | 亚洲制服丝袜在线播放 | 亚洲综合免费视频 | 中文字幕久久精品 | 国产视频精品在线 | 国产精品偷伦视频免费看 | 亚洲第一精品网站 | 欧美大片高清 | 色呦呦精品| jizzjizz免费| 蜜臀av性久久久久蜜臀aⅴ涩爱 | 毛片网站在线观看 | 午夜影院视频 | 日韩人妻无码一区二区三区 | 久久久看片 | 色欧美88888久久久久久影院 | 光棍福利视频 | 90岁老太婆乱淫 | 逼特逼视频在线观看 | 老司机午夜剧场 | 无法忍受在线观看 | 亚洲精品国产成人久久av盗摄 | 国产人成免费视频 | 亚洲精品久久一区二区三区777 | 伊人国产在线 | aaaa视频| 色资源网站 | 越南性xxxx精品hd | 精品免费囯产一区二区三区 | 精品国产成人av在线免 | 少妇xxx| 人人澡人人澡人人 | 小视频黄色 | 欧美在线一区二区 | 一级片毛片 | 九九热精品视频在线观看 | 美女光屁股视频 | 国产一区不卡在线 | 欧美一区二区三区 | 欧日韩不卡视频 | 天天躁日日躁aaaaxxxx | 精品国产区 | japanese av在线 | 干一夜综合 | 国产精品激情偷乱一区二区∴ | 国产一级做a爱片久久毛片a | 天堂av2019 | av国产片| 污网站免费观看 | 三级中文字幕在线 | 美女超碰 | 久操久热| 精品久久久久久久久久久国产字幕 | 中文字幕人妻一区二区 | 色呦呦视频在线观看 |