Django集成MongoDB实现过程解析

将Django与MongoDB集成

在不更改Django ORM的情况下,将MongoDB用作Django项目的后端数据库。使用Django Admin在MongoDB中添加和修改文档。通过仅添加一行代码,开始将Django与MongoDB结合使用。

1.pip安装djongo

2、设置setting文件

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

需要注意的地方:

1.Python 3.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)

需要MongoDB 3.6或更高版本。

有哪些好处:

1.重用Django模型/ ORM。

2.使用Djongo,可以永久地告别 Django Migrations。

怎么快速使用

在model中配置:

from djongo import models
class Blog(models.Model):
  name = models.CharField(max_length=100)
  class Meta:
    abstract = True
class Entry(models.Model):
  blog = models.EmbeddedField(
    model_container=Blog
  )
  headline = models.CharField(max_length=255)

在view使用:

e = Entry()
e.blog = {
  'name': 'Djongo'
}
e.headline = 'The Django MongoDB connector'
e.save()

更多细节请查阅官方文档:https://nesdis.github.io/djongo/integrating-django-with-mongodb/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    MongoDB查询之高级操作 语法介绍 MongoDB查询文档使用find()方法,同时find()方法以非结构化的方式来显示所有查询到的文档. -- 1.基本语法 db.collection.find(query, projection) -- 返回所有符合查询条件的文档 db.collection.findOne(query, projection) -- 返回第一个符合查询条件的文档 -- query:可选,查询条件操作符,用于指定查询条件 -- projection:可选,投影操作符,用

  • 分布式文档存储数据库之MongoDB访问控制的操作方法

    上一篇博客主要聊了下mongodb的分片机制以及分片集群的搭建,回顾请参考https://www.jb51.net/article/199845.htm:今天我们来了解下mongodb的访问控制: 什么是访问控制? 简单讲访问控制就是指,哪些用户可以访问哪些资源,对资源有哪些操作(权限):在mongodb中我们把数据库.或者集合叫做资源:也就说访问控制是用来限制某些用户对数据库或集合的操作:我们在mysql数据库中,我们通过给账号授权的方式达到控制哪些用户可以从哪些主机访问数据库,对数据库有哪些

  • 分布式文档存储数据库之MongoDB备份与恢复的实践详解

    前文我们聊了下mongodb的访问控制以及用户创建和角色分配,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13974656.html:今天我们来了解下mongodb的备份与恢复 为什么要备份? 备份的目的是对数据做冗余的一种方式,它能够让我们在某种情况下保证最少数据的丢失:之前我们对mongodb做副本集也是对数据做冗余,但是这种在副本集上做数据冗余仅仅是针对系统故障或服务异常等一些非人为的故障发生时,保证数据服务的可用性:它不能够避免人为的误操作:为了

  • 详解linux 使用docker安装mongodb方法

    1.xshell远程到一台安装了docker和docker-conpose的服务器(安装方法见其他学习文件) 2.到home目录下新建Mongotest文件夹,进入这个文件夹,执行vi docker-compose.yml,插入如下内容 ,退出并保存 3.执行docker-compose up -d 然后添加防火墙:firewall-cmd --add-port=27017/tcp --permanent 重启防火墙:firewall-cmd --reload 4.查看进程 docker ps

  • 在pycharm上mongodb配置及可视化设置方法

    一.mongodb安装 在官网下载适应于自己平台的mongodb,在此安装环境为Windows7-64bit 下载完成后直接安装,连续点击next选项直到,此处注意!!!!! 切勿勾选左下选项,安装过程可能非常漫长,勾选选项为mongodb可视化工具,可另外下载 安装完成后配置过程结合官方工作手册进行设置(https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/),mongodb安装完成. 二.配置pycharm 首

  • python连接mongodb数据库操作数据示例

    作者: wyh草样 出处:https://www.cnblogs.com/wyh0923/p/14047466.html 1.数据库配置类 MongoDBConn.py #encoding=utf-8 ''' Mongo Conn连接类 ''' import pymongo class DBConn: conn = None servers = "mongodb://localhost:27017" def connect(self): self.conn = pymongo.Conn

  • Java的idea连接mongodb数据库的详细教程

    最近有一个java实验,要求用java使用数据库,于是本人新手小白,在idea上卡了好半天 希望看到这个博客的人能解决问题,跳过一些坑 首先,我这里用的是 mongodb 数据库(ps:node.js下mongo太好用了,就没有mysql) 1,用idea创建一个maven工程 由于不牵扯太多功能,直接 next 就行了, 很无奈,创建完就直接报错了 找不到 maven 相关的插件 Cannot resolve plugin org.apache.maven.plugins:maven-comp

  • Robo可视化mongoDb实现操作解析

    因为公司的项目出现了MongodbCpu 100%的问题,所以最近在开始排查,也开始更加深入的接触Mongodb这个缓存型的数据库. 简单的就不说了,前面几张有安装和简单的使用,因为需要开始添加索引,所以开始研究起了Robo,这个软件, 才发现,和一些可视化的Mysql软件,一样,也能够去写sql 去操作mongodb,包括增删查改,和一些创建索引,分析等. 右键,可以专门打开shell出入框. 在里面写操作语句就行.执行按F5,或者是菜单栏有个绿色的执行按钮. 能执行语句就会使操作简单很多.

  • Django集成MongoDB实现过程解析

    将Django与MongoDB集成 在不更改Django ORM的情况下,将MongoDB用作Django项目的后端数据库.使用Django Admin在MongoDB中添加和修改文档.通过仅添加一行代码,开始将Django与MongoDB结合使用. 1.pip安装djongo 2.设置setting文件 DATABASES = { 'default': { 'ENGINE': 'djongo', 'NAME': 'your-db-name', } } 需要注意的地方: 1.Python 3.6

  • Spring Boot集成mongodb数据库过程解析

    一.认识mongodb MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引. 二.Spring boot项目集成mongodb 1.添加mongodb依赖 <dependency> <gr

  • django创建超级用户过程解析

    这篇文章主要介绍了django创建超级用户过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 终端输入 python3 manage.py createsuperuser 按照提示进行操作即可 不输入用户名会给你默认一个用户名,输入密码是在原处不动的,其实已经在输入了. 创建超级用户是为了能够登陆admin账户给数据库中添加数据. 需要添加数据的表格要放在admin里 from django.contrib import admin # R

  • Springboot 集成 lombok.jar过程解析

    这篇文章主要介绍了Springboot 集成 lombok.jar过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 介绍 Spring Boot是非常高效的开发框架,lombok是一套代码模板解决方案,将极大提升开发的效率,这里介绍给大家使用. Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法:在使用Lo

  • django自定义模板标签过程解析

    这篇文章主要介绍了django自定义模板标签过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码布局 自定义模板标签必须位于django的某个应用中 该应用中新建templatetags目录,和models.py,views.py同一级别 结构如下: polls/ __init__.py models.py templatetags/ __init__.py poll_extras.py views.py 模板中调用标签: {% loa

  • Python Django源码运行过程解析

    目录 一.Django运行顺序 1.启动 1.1 命令行启动(测试服务器) 2.监听 2.1 runserver(测试服务器) 3.中间件的执行 本文只算是本人片面之言(当然也会借鉴网络上公开资料),而且技术含量比较低,内容质量也一般,大家仅限参考即可 如果对本文看不太懂,请先阅读后面文章,等都差不多看完再回顾来看 一.Django运行顺序 WSGI会不断监听客户端发送来的请求 先经过中间件进行分析验证处理 然后经过url分发与验证 视图层进行处理 再经过中间件进行分析验证处理 返回响应内容 1

  • Django 大文件下载实现过程解析

    django提供文件下载时,若果文件较小,解决办法是先将要传送的内容全生成在内存中,然后再一次性传入Response对象中: def simple_file_download(request): # do something... content = open("simplefile", "rb").read() 如果文件非常大时,最简单的办法就是使用静态文件服务器,比如Apache或者Nginx服务器来处理下载.不过有时候,我们需要对用户的权限做一下限定,或者不想

  • Django缓存系统实现过程解析

    在动态网站中,用户每次请求一个页面,服务器都会执行以下操作:查询数据库,渲染模板,执行业务逻辑,最后生成用户可查看的页面. 这会消耗大量的资源,当访问用户量非常大时,就要考虑这个问题了. 缓存就是为了防止重复计算,把那些消耗了大量资源的结果保存起来,下次访问时就不用再次计算了.缓存的逻辑: given a URL, try finding that page in the cache if the page is in the cache: return the cached page else

  • Django实现celery定时任务过程解析

    1.首先在项目同名目录下建一个celery.py from __future__ import absolute_import import os from celery import Celery from datetime import timedelta from kombu import Queue # set the default Django settings module for the 'celery' program. os.environ.setdefault('DJANG

  • Python Django路径配置实现过程解析

    假设访问的views.py如下 1.使用url配置默认页 from django.conf.urls import url from django.contrib import admin from django.urls import path from HelloWorld import views urlpatterns = [ path('admin/', admin.site.urls), url('^$', views.hello), ] 这样可以访问http://127.0.0.1

随机推荐