ORM工具簡介
ORM是對象關係映射的簡稱,是一種程序技術,用於實現面向對象編程語言裏不同類型的數據之間的轉換。它使得從數據庫中提取數據來構造對象或將對象數據保存(持久化)到數據庫中實現起來更簡單。
mongoengine使用基本步驟
- 導入mongoengine庫
- 連接MongoDB數據庫
- 定義對象—數據類,會自動在數據庫中建立一個對應的集合;
- 在程序或項目中直接調用對象及其方法來完成數據的持久化
其對應的示例代碼如下:
from mongoengine import *
connect('test')
class User(Document):
name = StringField()
age = IntField()
passwd = StringField()
自定義對象實例的持久化相關方法:
save() # 保存對象到數據庫中
update() # 更新對象數據到數據庫中
update_one() # 根據對象數據跟新一個匹配的文檔
delete() # 刪除對象數據(從數據庫中)
object # 查詢數據庫中符合條件的文檔
例子:使用orm工具進行學生表的增刪查改
效果:
import random
from mongoengine import *
connect('test')
class Stu(Document):
sid = SequenceField()
name = StringField()
passwd = StringField()
def introduce(self):
print('序號:',self.sid,end=' ')
print('姓名:',self.name,end=' ')
print('密碼:',self.passwd)
def set_pw(self,pw):
if pw:
self.passwd = pw
self.save()
if __name__ == '__main__':
# 使用文檔前,清空文檔
st = Stu.objects()
st.delete()
print('插入一個文檔..')
stu = Stu(name='lilet', passwd='123123')
stu.save()
stu = Stu.objects(name='lilet').first()
if stu:
stu.introduce()
print('插入多條文檔..')
Stu(name ='zhangsan',passwd='123456').save()
Stu(name ='liming',passwd='123465').save()
print('查詢剛剛插入多條的文檔.....')
stu = Stu.objects()
for item in stu:
item.introduce()
print('更新修改文檔....')
stu = Stu.objects(name='lilet').first()
if stu:
stu.name = 'wangwu'
stu.save()
stu.set_pw('cccc')
stu.introduce()
print('刪除一個文檔.....')
stu = Stu.objects(name='wangwu').first()
stu.delete()
stus = Stu.objects()
for stu in stus:
stu.introduce()