mongoengine 支持 sessions使用

环境: python3.5
centos 7

说明

在mongoengine 0.9 版本之后,mongoengine 不再支持django 的使用,也就是说无法再像以前使用的方法进行 支持 session 使用。 根据网上说明,若要使 mongoengine支持 sessions,需要使用最新的 django-mongoengine 包,虽然此包还在开发,并且不稳定,但是据使用的人的反馈,没出问题,能正常使用。

django-mongoengine使用

连接:

再 settings.py 文件中,添加以下内容:

MONGODB_DATABASES = {
    "default": {
        "name": database_name,
        "host": database_host,
        "port" : port,
        "password": database_password,
        "username": database_user,
        "tz_aware": True, # if you using timezones in django (USE_TZ = True)
    },
}

INSTALLED_APPS += ["django_mongoengine"]

文档

类似在以前mongoengine中进行文档定义一样,除了不用使用连接:

from django_mongoengine import Document, EmbeddedDocument, fields

class Comment(EmbeddedDocument):
    created_at = fields.DateTimeField(
        default=datetime.datetime.now, required=True, editable=False,
    )
    author = fields.StringField(verbose_name="Name", max_length=255, required=True)
    email  = fields.EmailField(verbose_name="Email")
    body = fields.StringField(verbose_name="Comment", required=True)

class Post(Document):
    created_at = fields.DateTimeField(
        default=datetime.datetime.now, required=True, editable=False,
    )
    title = fields.StringField(max_length=255, required=True)
    slug = fields.StringField(max_length=255, required=True, primary_key=True)
    comments = fields.ListField(fields.EmbeddedDocumentField('Comment'))

Sessions

查看setting.py 中:
1, django.contrib.sessions.middleware.SessionMiddleware 是否在 MIDDLEWARE_CLASSES。如不再,则添加。
2, django.contrib.sessions 是否在 INSTALLED_APPS。如不再,则添加。

然后添加

SESSION_ENGINE = 'django_mongoengine.sessions'
SESSION_SERIALIZER = 'django_mongoengine.sessions.BSONSerializer'

到 setting.py 中。
表示将session数据存储在mongo中, session的存储方式有三种,详情见django中的session详细说明。

django提供能通过 SESSION_COOKIE_AGE设置过期时间的session cookie,在不会在session后台删除cookie。

参考:
http://docs.mongoengine.org/django.html
https://github.com/MongoEngine/mongoengine/blob/master/docs/django.rst

MongoEngine/django-mongoengine
https://github.com/MongoEngine/django-mongoengine

猜你喜欢

转载自blog.csdn.net/a1368783069/article/details/69396429