优点
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 mongoengineclass 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