Django 使用Mongodb
一、安装mongoengine
二、修改setting.py 添加mongoengine connect并且修改 DataBase
DATABASES = {
'default': {
'ENGINE':'django.db.backends.dummy'
}
}
connect('db', host='127.0.0.1')
三、添加model
1、正常的model继承mongoengine Document就可以了
2、可以继承DynamicDocument
3、可以继承EmbeddedDocument,用来在document中嵌入document
例如:
class User(Document):
name = StringField(max_length=100, required=True)
password = StringField(max_length=50)
phone = StringField(max_length=50)
email=EmailField(max_length=100)
sex=StringField(max_length=10)
remark=StringField(max_length=500)
birthday=DateTimeField(default=datetime.datetime.now)
createtime = DateTimeField(default=datetime.datetime.now)
def toDict(self):
return self._data;四、查询
def login(request): print(request.method) if request.method == 'POST': name = request.POST.get('username', '') password = md5(request.POST.get('passwd', '')) user = User.objects(name=name, password=password).first()--查询 if user is not None: strs = user.toDict()--把查询结果序列号成dict cache.set("userid", user.id)--缓存到内存中(redis) cache.set('userInfo', strs) resp = {'accessGranted': True, 'errorcode': 100, 'detail': 'Get success'} return HttpResponse(json.dumps(resp), content_type="application/json") userId = cache.get('userid') userInfo = cache.get('userInfo') if userId is not None: print(type(userInfo)) return HttpResponseRedirect("/index") return render(request, 'login.html')