zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Django操作mongodb之 mongoengine (占个位)

djangoMongoDB 操作
2023-09-27 14:25:19 时间

https://www.ucloud.cn/yun/42715.html

https://www.cnblogs.com/yangyangming/p/11516121.html

 

 

python操作mongo   用这个 自己写个对象 去操作。https://www.cnblogs.com/kaibindirver/p/16791641.html

注意mongo的配置要赋值到配置文件里面去,不然每次请求会多次建立连接

 

 

setting.py

from Test import aa

MMM=aa.mondb()

 

aa.py

import os
import base64
class dbconf():
    def __init__(self):
        self.key="asda"
        self.selectconcent()

    '''
    开发环境 environ['env']="development
    '''
    def selectconcent(self):
        if os.environ.get("env")=="production":
            '''线上配置'''
            connect = {'host': base64.b64decode(self.key),'port': 3717,"db":"prod_test_platform"}
            print("线上配置获取")
        else:
            '''dev配置'''
            connect = {'host': base64.b64decode(self.key),'port': 3717,"db":"dev_test_platform"}
            print("dev配置获取")

        dbconf.host=connect['host']
        dbconf.port = connect['port']
        dbconf.dbmsg= connect['db']

    @property
    def host(self):
        return dbconf.host

    @property
    def port(self):
        return dbconf.port

    @property
    def dbmsg(self):
        return dbconf.dbmsg

from pymongo import MongoClient
from django.conf import settings
# 获取数据库连接
def mondb():
    db=dbconf()
    # 连接 MongoDB
    client = MongoClient(host=db.host.decode('utf-8'), port=int(db.port))
    # 选择数据库
    db = client[db.dbmsg]
    # 选择集合
    collection = db['buglist']
    # setattr(settings,'MMM',333)
    # print(getattr(settings,'MMM'))
    return collection

 

view.py

from django.conf import settings
from rest_framework.response import Response
class getmsg(APIView):

    def get(self,requets):
        item = getattr(settings, "MMM", "取不到就给一个默认值")
        print(item.find_one())  #获取mongo连接查询数据
        return Response(123)

 

配置文件引用文件用.  去获取当前目录下文件下的方法