Python Django Mongodb

4 篇文章 0 订阅
2 篇文章 0 订阅

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')


 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值