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()