djongo:Django和MongoDB连接器

作者: f4698891a569 | 来源:发表于2018-06-20 00:24 被阅读0次

    在Django项目中使用MongoDB作为后端数据库,且不改变Django的ORM框架。实现Django用户管理程序对MongoDB数据库中文件的增加和修改。

    用法

    1.pip install djongo

    2.在Django项目下的setting.py中增加如下代码:

    DATABASES ={
     
        'default':{
            'ENGINE:'djongo',
            'NAME':'your-db-name',
                  }
               }
    

    3.运行 manage.py makemigrations,之后运行 manage.py migrate(仅在MongoDB中第一次建立数据表的时候需要)

    4.完成。
      在这里还是要推荐下我自己建的Python开发学习群:725479218,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴

    要求:

    1.Python3.6及以上版本

    2.MongoDB 3.4及以上版本

    3.如果项目数据库中使用嵌套查询或者子查询,比如:

    inner_qs =Blog.objects.filter(name__contains='Ch').values('name')
    entries =Entry.objects.filter(blog__name__in=inner_qs)
    
    

    需要MongoDB3.6及以上版本。

    如何工作?

    Djongo对Django ORM框架的改变非常小,这就意味着不会发生一些不必要的错误。它将SQL字符串查询转变为MongoDB的文件查询。至此,所有和Django相关的功能、数据库等都这样运作。

    Django的服务模块:

    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.sessions',
    

    其它的也全都支持。

    Django中用法

    用于MongoDB的Djongo连接器确保你可以: --重新使用Django数据库/ORM框架 --同原始Django变量一起发挥作用 --事先验证你的代码 --微小的SQL JOIN操作

    参考集成Django和MongoDB获取更详细的介绍。如果你的项目使用了复杂的数据库,也可以向专家获取支持。

    使用Django用户管理模块添加数据文件

    比如你想利用Django创建一个以MongoDB为后端数据库的博客平台。在你博客项目app/models.py文件下定义Blog数据表:

    完成设置,然后访问localhost:80000/admin/你将会看到以下结果。

    查询嵌入的数据字段

    在上面的例子中,我们要查询所有以Beatles开头的名字,可以使用下面的查询方法:

    参考在Django中使用MongoDB数据字段获取更多的介绍。

    Djongo管理器

    Djongo管理器扩展了Django管理器的功能。它能够让你使用所有pymongo的API命令。可以在模型中定义类似Djongo管理器一样的自定义管理器。

    管理器的使用和Djongo管理器一样: post = Entry.objects.get(pk=pkey) 将会获得一个带有主键pkey的对象。

    对Pymongo直接操作

    MongoDB有非常强大的查询命令,DjongoManager能够让你完全使用它。

    你可以直接使用任何pymongo命令通过在命令名字前面加上mongo的前缀。例如,对Blogpage(Blogpage在SQL中保存为一个数据表,在MongoDB中保存为一个集合)使用aggregate,函数名变为mongoaggregate。在模型中直接插入一个文件(不是使用.save()),使用mongoinsertone() 。

    相关文章

      网友评论

        本文标题:djongo:Django和MongoDB连接器

        本文链接:https://www.haomeiwen.com/subject/wsxtyftx.html