django连接mongodb mongoengine

优点

MongoEngine ()
1. 提供了和 Django 原生 ORM 几乎一样的一切,功能已经相当强大;
2. 用起来比 Django 原生 ORM 更简洁更优雅;
3. MongoEngine 和 Django “契合度”很高,Session,User 模块几乎可以直接平移过来,但MongoEngine 本身不依赖 Django,可以用在其他框架上;
4. 本身很轻巧,文档很丰富,所以文档提供不了的细节,可以通过直接读代码来解决。

当然缺点也是很明显的,最不能习惯的就是 admin 没了。

参考https://www.zhihu.com/question/19818326

先安装mongoengine模块

pip3 install mongoengine

然后在setting里配置

在INSTALLED_APPS里注册'mongoengine',把原来的database设置为None

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles','mongoengine'
]

 

 

MONGODB_DATABASES = {
    "default": {
        "name": "test",
        "host": '127.0.0.1', "tz_aware": True, # 设置时区 }, }#这个好像可加可不加,我没有加照样可以使用

DATABASES = { 'default': { 'ENGINE': None,
     #
'ENGINE':'django.db.backends.dummy',#也可以这样设置
    }
}
from mongoengine import connect
connect('test', host='127.0.0.1')#test是数据库名称,如果是本机就不用加host参数了
 

 

models.py使用

在models.py里导入mongoengine,类名就是表名,继承基类mongoengine.Document

import mongoengine
class Visit(mongoengine.Document):

    v_type = mongoengine.StringField(max_length=30)
    v_times = mongoengine.IntField(default=1,null=True)
    end_time=mongoengine.DateTimeField(null=True)

不用makemigrations和migrate,直接就能用

 

参考的https://www.jianshu.com/p/ab3561ebdafd

转载于:https://www.cnblogs.com/z-x-y/p/10285366.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值