django+mongodb web 应用

django + mongodb 快速搭建web 应用

接近python时间最不算短,但直到最近才真正用python去做一些项目,说来实在惭愧。
刚好想做一个移动互联网的项目,没人来做后台,那就自己来吧,发现python真的好多web 框架,对于我这种拿来主义的人来说,是再好不过了。
google了一下,决定 用django + mongodb ,嗯,这货确实受欢迎,django 框架 功能丰富,用来做应用的原型再合适不过了。
django 标准的MVC结构,简洁的GRUD模型用起来很方便 , 很pythonic,具体的使用方法就不赘述了,有兴趣的朋友请猛戳https://www.djangoproject.com/
django的database backends还不支持mongodb , 不过可以利用mongoengine进行GRUD的无缝转接,附上settings.py的部分设置

1
2
3
4
5
6
7
8
9
10
11
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.dummy', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '', # Or path to database file if using sqlite3.
# The following settings are not used with sqlite3:
'USER': '',
'PASSWORD': '',
'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
'PORT': '', # Set to empty string for default.
}
}

有一点要请意的是,django本身自带一个User Document, 想要自定义的话比较麻烦,需要重写

1
2
3
4
5
6
7
8
9
AUTHENTICATION_BACKENDSMONGOENGINE_USER_DOCUMENT

AUTHENTICATION_BACKENDS = (
'gamelab.webapp.models.authmodel.MyMongoEngineBackend',
)

MONGOENGINE_USER_DOCUMENT = 'xx.xx.xx.MyCUser'

SESSION_ENGINE = 'mongoengine.django.sessions'

具体可以参与django源码mongoengine.django.auth做扩展