django mongoengine使用小记

    最近在用 django 和 mongodb 做个小论坛, 记录一下自己学习的过程, 希望能对大家有所帮助, 

   

    首先, 说说感受吧, 用过一段时间的 webpy, 换到 django 还真的觉得 django 是用 django 来写

web 应用, 还是喜欢 webpy 用 python 写 web 应用的方式, 其次就是使用 nosql, 这货使用感觉不错, 

但是建模不像 RDB 那样有三大范式这样的准则, 所以导致自由度很大, 所以当你要用 nosql 的时候,

确实对数据要理解更深, 毕竟设计哲学是专注问题, 而不是专注结果。

 

      下面说说如何在 django 中使用 mongodb 吧, 方式有很多种, 不过据说 mongoengine 是比较

靠谱的, 个人使用过程也觉得很靠谱。

安装:

       参考这个文章吧: http://simple-is-better.com/news/386

       还有官方文档:   https://mongoengine-odm.readthedocs.org/en/latest/

       也就是 pip install mongoengine

       主要说说使用过程:

       首先在 settings.py 导入 mongoengine

       

from mongoengine import connect

connect('test')  # your database

  如果你想使用 django 的 session 和 authentication 这两个框架, 还要加入

       下面的代码:

1 # add session
2 SESSION_ENGINE = 'mongoengine.django.sessions'
3 
4 # add authentication
5 AUTHENTICATION_BACKENDS = (
6     'mongoengine.django.auth.MongoEngineBackend',
7 )

       这样之后就可以使用 mongoengine 来连接 mongodb 了。

       打开你的 app 中 models.py 这个文件。 

1 class User(Document):
2     email = StringField(required=True)
3     first_name = StringField(max_length=50)
4     last_name = StringField(max_length=50)

       是不是和原来的 model 框架使用很像, 这个库也是为了你能快速上手而这样设计的。

       然后在你的 views.py 文件就可以使用User了。

from models import User


# insert
tom = User(email='xxx@xxx.xxx', first_name='tom', last_name='hanks')
tom.save

# find all
users = User.objects()

# find one
tom  = User.objects(first_name='tom').first()

# update
tom.update(set__last_name='green')

# delete
tom.delete()

这样 CURD 就有了, 只是官方文档没有怎么说 update 的用法, 其实跟 mongodb shell 操作类似, 

只是 '$' 号换成了双'__', 也就是像 SET__FIELD = ‘value’, set可以是别的命令, 如push, pull等等,

filed就是你要更新的字段。

 

还有就是想说说如何来使用 django 中 authentication 这个框架, 官方文档没怎么提到,

自己看了一下源代码, 才摸索出来的。

导入 User

1 from mongoengine.django.auth import User
2 
3 # create user
4 User.create_user(username='runforever', password='******')

要使用认证的话就需要 django 自带的框架了

from django.contrib import auth

# authentication
user = auth.authentication(username='username', password='password')

这样来使用, 像login, logout 也是这样使用的。

网上没有这块资料, 所以写写。

 

  

 

转载于:https://www.cnblogs.com/fe-forever/archive/2012/10/13/2722713.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值