djongo:Django和MongoDB连接器

news/2024/6/29 4:03:47

在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() 。


http://lihuaxi.xjx100.cn/news/272494.html

相关文章

辞职之后的思考--激励

本人曾拿过多次奖金,也曾与很多同事沟通过拿奖金的感觉,引发一些思考,这其实也是希望在以后有机会给别人发奖金时做参考之用。   并不是所有人都会有奖金,所以如果我没有奖金其实也没有什么关系,但是,我非…

AI+大数据助力抗疫,带你认识百度地图的新玩法!

作者 | Aholiab责编 | Carol出品 | AI科技大本营(ID:rgznai100)“喂,你好,我是百度地图的客服,请问是xx店铺对吗?”“嗯,什么事?”“您家在疫情期间还照常营业,对吗&…

滴滴开源了哪些有意思的项目?

点击上方“方志朋”,选择“设为星标”回复”666“获取新整理的面试文章作者 | 滴滴技术 出品 | 滴滴技术作为卓越的一站式移动出行和生活平台,滴滴在亚洲、拉美和澳洲为超过5.5亿用户提供出租车、快车、专车、豪华车、公交、代驾、企业级、共享单车、共…

图解Transformer:Attention Is All You Need

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达编译丨deephub来源丨DeepHub IMBA编辑丨极市平台2017年谷歌大脑在《注意力是你所需要的一切》一文中解释了Transformer 。本文是随着自然语言处理领域的发展而来的。许多最先…

TB/T 3237 动车组用内装材料阻燃要求与测试

TB/T 3237规定了动车组用阻燃材料的技术要求及试验方法 TB/T 3237标准描述 TB/T 3237适用于最高运营速度大于等于200 km/h 的动车组用阻燃材料 TB/T 3237规定了动车组用阻燃材料的技术要求及试验方法 TB/T 3237适用于最高运营速度大于等于200 km/h 的动车组用阻燃材料 通过TB…

C++是如何从代码到游戏的?

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达C是如何从代码到游戏的?嗯.这个简单啊。你既然问C了,那我问你,现在,我有一个Student类。C怎么创建一个学生类的对象&#x…

Ubuntu 系统 文件操作命令

文件和目录的操作 用户主目录下有一个 Desktop (对应,桌面)mkdir dir1 建立一个目录cd 不添加参数,默认回到主目录(用户目录)touch a.txt 建立一个文件mv a.txt Desktop/ 移动到Desktop/中 mkdir dir1cp -r dir1/ dir2 不加-r或者-R的时候,只拷贝文件&am…

Zookeeper集群部署和使用

Zookeeper 由 Apache Hadoop 的 Zookeeper 子项目发展而来,Google Chubby的一个开源实现。它是一个分布式应用程序协调服务,提供的功能包括:配置管理,名字服务,提供分布式同步、队列管理、集群管理等。 从设计模式角度…