import pymongo from bson import ObjectId from gridfs import GridFS DB_USER = "root" DB_PASS = "sromitdTW569kC#M" DB_HOST = "116.63.130.34" DB_PORT = "27018" client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format(DB_USER, DB_PASS, DB_HOST, DB_PORT)) def FIND_VERIFY_CODE(param): """ 查询验证记录 Parameters: param: 查询条件 Returns: record: 记录 """ collection = client['用户']['验证记录'] data = collection.find(param, {'_id': False}) record = list(data) return record def UPDATE_VERIFY_CODE(email, data): """ 查询验证记录 Parameters: email: 邮箱 data: 要更新的数据 Returns: record: 记录 """ collection = client['用户']['验证记录'] collection.update_one({"邮箱": email}, {"$set": data}, upsert=True) def CLEAN_VERIFY_CODE(email): """ 清除验证码和验证时间戳 Parameters: email: 邮箱 Returns: - """ UPDATE_VERIFY_CODE(email, {"验证码": None, "验证有效期": None}) def FIND_USER_INFO(param): """ 查询用户信息 Parameters: param: 查询条件 Returns: record: 记录 """ collection = client['用户']['用户信息'] data = collection.find(param, {'_id': False}) record = list(data) return record def INSERT_USER_INFO(data): """ 插入一条用户信息 Parameters: data: 用户信息对象 Returns: - """ collection = client['用户']['用户信息'] collection.insert_one(data) def UPDATE_USER_INFO_BY_CID(cid, data): """ 更新用户信息 Parameters: cid: 企业ID data: 更新数据 Returns: info: 信息 """ collection = client['用户']['用户信息'] collection.update_one({"企业ID": cid}, {"$set": data}) def FIND_FILE(bucket, file_id): """ 读取一个文件 Parameters: bucket: file_id: Returns: data 文件二进制 """ # 实例化一个文件存储器 gfs = GridFS(client['用户'], collection=bucket) # 二进制读取文件 data = gfs.get(ObjectId(file_id)).read() # 返回文件二进制流 return data def INSERT_FILE(bucket, file_stream, content_type, filename): """ 插入一个文件 Returns: obj_id 文件ID """ # 实例化一个文件存储器 gfs = GridFS(client['用户'], bucket) # 保存文件 obj_id = gfs.put(file_stream, content_type=content_type, filename=filename) # 返回文件的obj_id return str(obj_id) def DELETE_FILE(bucket, file_id): # 实例化一个文件存储器 gfs = GridFS(client['用户'], collection=bucket) # 删除文件 gfs.delete(ObjectId(file_id)) def FIND_FID_IN_RATING_RECORD(cid): """ 在评价记录中根据企业ID查询文件ID Parameters: cid: 企业ID Returns: record: 记录 """ collection = client['评价']['评价记录'] data = collection.find({"企业ID": cid}, {'_id': False, "报告fid": 1, "证书fid": 1}) record = list(data) return record