MongoEngine 中文文档(一)

标签(空格分隔): Mongodb

github地址

近来用Flask做了一个小小的Demo(目前还在做),用的是MongoDB,ORM采用的是时Flask-MongoEngine,虽然是叫做Flask-MongoEngine,但其实只是对MongoEngine的一种封装,让其成为了Flask的扩展,所以在查找资料的时候直接找MongoEngine的资料就可以了,然而在开发的过程中,突然发现有关的MongoEngine的中文资料实在是太少了,作为当前比较流行NoSQL数据库,大部分的Python Web开发者其实都是比较钟爱NoSQL的,所以今天打算翻译一下MongoEngine的官方文档

这里我只会翻译我个人认为比较重要的部分 ,翻译不好还请原谅


(一). 安装

$ pip install mongoengine


(二). 连接数据库

flask-mongoengine

我们先来看一下flask-mongoengine中的源码,其实它就是调用的mongoengine中的connect方法
#flask-mongoengine/flask_mongoengine/connection.py
def _connect(conn_settings):

    """Given a dict of connection settings, create a connection to
    MongoDB by calling mongoengine.connect and return its result.
        """
    db_name = conn_settings.pop('name')
    return mongoengine.connect(db_name, **conn_settings)

关于flask-mongoengine的连接数据库的方式,我就不一一列举了,可以去看它的文档,很简单

mongoengine

  1. 第一种方式
    from mongoengine import connect
    connect('project1')  #project1为你要连接的数据库的名称
  1. 第二种方式
    #如果mongo服务是在其他地方运行,可以使用这种方法
    from mongoengine import connect
    connect ('project1' , host = '192.168.1.35' , port = 12345
  1. 第三种方式
    #如果数据库需要身份验证,username并password 应提供的参数
    from mongoengine import connect
    connect ('project1' , username = 'webapp' , password = 'pwd123'
  1. 第四种方式(推荐)
    #URI样式连接也被支持 - 只需提供URI作为host:
    from mongoengine import connect
    connect ('project1' , host = 'mongodb:// localhost / database_name'

(三). 定义文件

MongoEngine允许您为文档定义模式,因为这有助于减少编码错误,并允许在可能存在的字段上定义实用方法
下面来一个给一个例子,要为文档定义模式,请创建一个继承自其的类 Document。通过将字段对象作为类属性添加到文档类来指定字段

from mongoengine import *
import datetime

class Page(Document):
    title = StringField(max_length=200, required=True)
    date_modified = DateTimeField(default=datetime.datetime.utcnow)

3.1. 字段

默认情况下,字段不是必需的。要使字段成为必填字段,请将字段的required关键字参数设置 为True。字段也可能有可用的验证约束(max_length例如上面的示例中)。字段也可以采用默认值,如果没有提供值,将使用默认值。默认值可以可选地是可调用的,将被调用来检索该值(例如在上面的示例中)。可用的字段类型如下所示

BinaryField 二进制数据字段
BooleanField
ComplexDateTimeField
DateTimeField
DecimalField
DictField
DynamicField
EmailField
EmbeddedDocumentField
EmbeddedDocumentListField
FileField GridFS存储字段
FloatField
GenericEmbeddedDocumentField
GenericReferenceField
GenericLazyReferenceField
GeoPointField

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值