栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Django MongDB 数据库(十六)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django MongDB 数据库(十六)

11. MongDB 数据库
  • 什么是 MongDB 数据库

mongodb 是一个分布式文件存储的数据库,由C++语言编写。为web应用提供可扩展的高性能数据存储解决方案。

  • 什么是非关系型数据库

非关系型数据库被称之为 NosQL(not only sql) ,意思是不仅仅是 sql
在2009年,提出了 No5QL 的概念,此时 No5QL 主要是指非关系型、分布式、本提供ACID(数据库事务处理的四个基本要素)的数据库设计模式

在亚特兰大举行的 No5QL(esat) 讨论会上,对 NoSQL 最普遍的定义是’非关联型的’,强调Key-value存储和文档数据库的优点,而不是单纯的反对 RDBMS 至此,NoSQL开始正式的出现在世人面前

MongoDB 是一个介于关系型数据库和非关系数据库之间的产品。

  • 最常用的 NoSQL 类型

key-value

  • 下载 mongdb

https://www.mongodb.com/try/download/community

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AKJGIVlm-1653704524536)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20220527155200205.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z9VKuvmK-1653704524537)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20220527155743264.png)]

  • 启动 mongdb

在 data 目录下面创建 文件夹 db

mkdir db

去 bin 目录执行启动

mongod --dbpath …/data/db

启动交互 新建一个 bin 目录的 cmd 窗口

mongo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2JLDIo6r-1653704524538)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20220527160258736.png)]

  • 安装 pymongo

pip install pymongo==3.10.0

  • 创建 app 子应用

python .manage.py startapp app

  • urls.py(子路由)
from django.urls import path

from app.views import Index

urlpatterns = [
    path('index/', Index.as_view()),
]
  • urls.py(总路由)
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('app.urls'))
]

  • settings.py
from pymongo import MongoClient

MONGOCLIENT = MongoClient(host='localhost', port=27017)		# 配置 mongo 连接信息

ALLOWED_HOSTS = ['*']

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',
]

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_TZ = False
  • app 子应用创建 mongo_models.py
from django.conf import settings

conn = settings.MONGOCLIENT['user_mongodb']


class User(object):
    db = conn['user']

    @classmethod
    def insert(cls, **params):
        return cls.db.insert(params)

    @classmethod
    def get(cls, **params):
        return cls.db.find_one(params)

    @classmethod
    def get_more(cls, **params):
        return list(cls.db.find(params))

    @classmethod
    def update(cls, _id, **params):
        return cls.db.update({'_id': _id}, {'$set': params})
    
  • 测试

// 打开 Django shell 界面

python manage.py shell

// 导入 mongo_models 中的 User

from app.mongo_models import User

// 创建数据

data = {“_id”: 123, “name”: “小钟”, “age”: 21}

// 调用自定义的方法

rs = User.insert(**data)

// 查看结果

rs

// 调用自定义方法查询

rs1 = User.get(_id=rs)

// 查看结果

rs1

  • 安装 mongoengine

pip install mongoengine

  • 子应用创建 mongo_engine.py
from mongoengine import connect, Document, StringField, IntField, ReferenceField

connect('mongo_engine', host='localhost', port=27017)


class Users(Document):
    name = StringField(required=True, max_length=20)
    age = IntField(required=True, default=0)


class userLogin(Document):
    user = ReferenceField(Users)
    usernames = StringField(required=True, max_length=20)
    password = StringField(required=True, max_length=20)
    
  • views.py
from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.
from django.views import View

from app.mongo_engine import Users, userLogin


class Index(View):
    def get(self, request):
        user = Users
        userinfo = user.objects.create(name='小钟', age=21)
        userlogin = userLogin(username='root', password='123456')
        userlogin.save()
        return HttpResponse('my name is {} my age is {} her username is {} her password is {}'
                            ''.format(userinfo.name, userinfo.age, userlogin.username, userlogin.password))
        
  • 启动 Django

python .manage.py runserver

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935394.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号