Mongoengine提供类型Django Model的体验
来源:互联网 发布:软件音乐播放器 编辑:程序博客网 时间:2024/05/20 23:04
mongoengine
- 最直接的方式是使用PyMongo——MongoDB提供的Python Driver。但是用惯了Django的Model层,实在不愿意自己去维护数据库连接,写一大堆CRUD的语句。
- 而django-nonrel,如前所述,未必是一个好的选择。同样的原因,django-mongodb-engine是基于django-nonrel的MongoDB backend实现,也不予考虑。
- MongoEngine,在Django官方的支持出来之前,我认为这是最好的选择。因为MongoEngine可以提供与Django Model(ORM)非常类似的体验,可以快速上手。看一下官网首页的例子:
from mongoengine import * # To define a schema for a # document, we create a class Metadata(EmbeddedDocument): # class that inherits from tags = ListField(StringField()) # Document. revisions = ListField(IntField()) # # Fields are specified by class WikiPage(Document): # adding field objects as title = StringField(required=True) # class attributes to the text = StringField() # document class. metadata = EmbeddedDocumentField(Metadata) # # Querying is achieved by >>> page.title = “Hello, World!” # calling the objects >>> for page in WikiPage.objects: # attribute on a document >>> print page.title # class.
Django+MongoEngine
首先安装MongoEngine(依赖pymongo)。之后在python shell中实验一下:
from mongoengine import *connect('employeeDB')class Employee(Document): name = StringField(max_length=50) age = IntField(required=False)john = Employee(name="John Doe", age=25)john.save()jane = Employee(name="Jane Doe", age=27)jane.save()for e in Employee.objects.all(): print e["id"], e["name"], e["age"]
在Django中使用也很容易,只需在models.py(如果你十分介意,也可以单独放在docs.py中)这样写:
from mongoengine import *from mysite.settings import DBNAMEconnect(DBNAME)
class Employee(Document): name = StringField(max_length=50) age = IntField(required=False)
其中,DBNAME在settings.py中指定。
然后,在视图中就可以使用“文档模型“了。
其他
1.Mongo Engine的Field类型与Django ORM的Field类型有所不同,下面是一个简单的对比:
- Mongoengine提供类型Django Model的体验
- django mongoengine 判断mongoengine定义的字段类型
- Django -model的字段类型清单
- Django中model的字段类型
- Django model字段类型
- Django Model 字段类型
- Django model字段类型
- Django model字段类型
- Django Model 字段类型
- Django model字段类型
- django model field类型
- MongoEngine对Django支持的官方文档翻译
- MongoEngine对Django支持的官方文档翻译
- Django model字段类型清单
- Django model字段类型清单
- Django model字段类型清单
- Django model字段类型清单
- Django model字段类型清单
- php反射 检查类
- 在线视频流播放控制(优酷、土豆、酷六、音乐台)
- 邓明善:一定要学会与机遇博弈
- Oracle 11gR2 Active Data Guard 安装配置
- 全排列
- Mongoengine提供类型Django Model的体验
- 软件无线电 卫星通信 DSP算法
- 根据两点经纬度,计算其距离
- mysql子查询不支持limit
- ofstream和ifstream详细用法
- Hibernate 第十讲 表关联关系(十)单向多对多
- cxgrid 根据条件设置单元格颜色
- Struts2访问Web元素
- [备忘]ios5.0 sdk使用ARC后导入之前的开源库不兼容问题的解决方案