Django操作mongodb之 mongoengine (占个位)
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)
配置文件引用文件用. 去获取当前目录下文件下的方法