一. 在python脚本中, 我们通常可以使用pymongo模块实现与mongodb数据库的交互, 但是在使用Django框架进行定制开发的web server 项目中, 仍然使用pymongo模块的话, 显然是过于“原始”,这时可以考虑使用 mongoengine 模块, 通过这个模块, 可以封装数据模型, 然后以orm的形式进行crud,实现对mongodb数据库的操作。 这里仅对如何快速的使用这个模块做一个简单说明。

二. 安装 mongoengine

pip install mongoengine

三. django 配置文件中配置连接mongodb数据库

import mongoengine

# 创建与mongodb数据库的连接
MONGO_CONN = mongoengine.connect(
db="lowman", # 需要进行操作的数据库名称
alias='default', # 必须定义一个default数据库
host="192.168.3.69",
port=27017,
username="渣男不但丑",
password="",
authentication_source="admin", # 进行身份认证的数据库,通常这个数据库为admin“
)

四. models.py 中定义数据模型

import mongoengine
import datetime
from mongoengine import Document class Book(Document): # 默认的会在 mongodb 中的 lowman 数据库创建一个名称为book的collection
"""
这里定义的模型, 实际上与使用关系型数据库时定义的模型,其定义的方式是一样的
只不过使用不同的模块,并继承自不同的父类, 数据保存在不同类型的数据库里。不需要执行迁移操作
"""
author = mongoengine.StringField(required=True, max_length=125)
email = mongoengine.StringField(required=True)
addr = mongoengine.StringField(required=True, max_length=125)
time = mongoengine.DateTimeField(default=datetime.datetime.now)

五. views.py 视图中进行crud操作

from .models import Book

book_obj = Book.objects.create(author="渣男不但丑, 屌丝也很忙", email="lowman@9527.com", addr="流浪地球村")

制作好模型以后, 就可以通过这个模型调用orm进行数据的增删改查,使用方式大体上与django自带的orm是相似的,这里就不对这种搬砖头的事情加以细述了,如果希望了解更加详细的使用方式及注意事项,可以查看官方文档: http://docs.mongoengine.org/

 
 
 

Django 通过 mongoengine 连接 MongoDB 进而使用orm进行CRUD的更多相关文章

  1. Django用mongoengine操作mongodb

    最近在写Django项目,使用的是mongodb,虽然Django不支持NoSQL,但是mongoengine可以帮助我们像ORM一样在Django项目中去操作mongodb 推荐一个可视化工具  R ...

  2. 阿里云ECS服务器连接MongoDB

    第一次接触MongoDB,第一次部署.将一些步骤整理出来,希望以后会用到,也希望能帮组到有这方面需求的小伙伴. 设备说明: 服务器为阿里云ECS服务器,网络为专有网络VPC,Mango为买的阿里云Ma ...

  3. Django进阶Model篇—数据库操作(ORM)

    一.数据库配置 django 默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver之类的数据库需要第三方的支持,具体详见https://docs.d ...

  4. Django基础四之测试环境和ORM查询

    Django基础四之测试环境和ORM查询 目录 Django基础四之测试环境和ORM查询 1. 搭建测试环境 1.1 测试环境搭建方法: 1.2 使用测试环境对数据库进行CURD 1.3 返回Quer ...

  5. nodejs连接mongodb的方法

    一. var express = require('express'); var mongodb = require('mongodb'); var app = express(); app.use( ...

  6. Nodejs开发(2.连接MongoDB)

    一.先配置MongoDB Win10下下载那个安装版,zip版的会报却各种DLL,安装在你希望的路径,实在安装错了,就剪切过来也行(本例E:\mongodb). 然后是配置启动脚本,就是写一个bat文 ...

  7. 在express中使用Mongoose连接MongoDB

    为何要学Mongoose? Mongoose是MongoDB的一个对象模型工具,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单. 0.安装 ...

  8. java连接mongodb的一个奇葩问题及奇葩解决方式

    昨天在eclipse中编写代码,本来连接mongodb进行各项操作都是正常的,但是有一会儿突然之间就没法连接了,还一直抱错,错误如下: 信息: Cluster created with setting ...

  9. Java 连接MongoDB

    1.驱动 通过java连接MongoDB需要一个java版的驱动 下载地址:http://mongodb.github.io/mongo-java-driver/ 2.连接MongoDB 通过 com ...

随机推荐

  1. 请求不同域的数据方法:requests Jsonp cors

    在需要访问不同域的接口的数据的时候,一般有两种方式: 第一种: 使用requests模块,在业务逻辑中直接访问别的域的接口,获取数据,然后将返回的数据显示到前端页面上; 这个时候,数据访问的流程是: ...

  2. css选择器querySelector

    * querySelector(css选择器)* 通过css选择器去获取一个元素* 它获取到的只有一个元素,如果说是有重复的,那它只取第一个** 主语* document 从整个文档里去获取元素* 父 ...

  3. href,src,url三者区别。

    在html中: href(Hypertext Reference)指向网络上的资源,在现有元素(如a标签)或现有文档(如link)与目标锚或资源之间建立链接. 建立链接的过程中,浏览器不会停止解析所在 ...

  4. python 函数的名称空间及作用域

    一:名称空间 1:什么是名称空间: 名称空间即:储存名字与值的内存地址关联关系的空间 2.名称空间的分类: 内置名称空间:存储器自带的一些名称与值的对应关系,如:print,len,max等; 生命周 ...

  5. uboot1.1.6

    http://blog.csdn.net/lizuobin2/article/details/52061530

  6. 替换php remi源

    检查当前安装的PHP包 yum list installed | grep php 如果有安装的PHP包,先删除他们 这里一定要把上一步列出来的所有php包删除干净 yum remove php.x8 ...

  7. hdu 1277 AC自动机入门(指针版和数组版)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1277 推荐一篇博客(看思路就可以,实现用的是java): https://www.cnblogs.co ...

  8. spring整合mybatis在使用.properties文件时候遇到的问题

    在spring里使用org.mybatis.spring.mapper.MapperScannerConfigurer 进行自动扫描的时候,设置了sqlSessionFactory 的话,可能会导致P ...

  9. 516. Longest Palindromic Subsequence最长的不连续回文串的长度

    [抄题]: Given a string s, find the longest palindromic subsequence's length in s. You may assume that ...

  10. EntityFramework 基础提供程序在 Open 上失败

    最近项目开始上线,所以抽时间学习了一下EF.虽然项目中一直在用,但是因为一些原因,一直是知其然不知其所以然,紧紧只限于会用而已.这两天自己搭建了一个MVC的EF框架,虽然也有参考网上各种资料,但是依然 ...