import random from Model.model_db import * def gen_new_rid(): """ 生成新的问题ID,如果该ID存在,则重新生成 Parameters: - Returns: new_id: 生成的问题ID """ # 生成新ID new_id = make_id(8) # 检查新ID是否存在,如果存在则继续生成新ID case = find_records('问卷', '问题数据', {"ID": new_id}) is [] while case: new_id = make_id(8) # 新ID可使用,返回新ID return new_id def make_id(num): """ 随机生成字符串 """ choices = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' salt = '' for i in range(num): salt += random.choice(choices) return salt def insert_question_scripts(question): """ 插入一条新的问题数据 Parameters: question: dict 问题数据(包括:类型、题干、详情、打分标准) Returns: result: str 插入结果 """ insert_dict = dict() insert_dict['ID'] = gen_new_rid() insert_dict = dict(insert_dict, **question) result = insert_data('问卷', '问题数据', insert_dict) if result: return '录入成功' else: return '录入失败' def insert_questionnaire_scripts(questionnaire): """ 更新(插入)问卷数据 Parameters: questionnaire: dict 问卷数据(由问题数据构成) Returns: result: str 新增结果 """ insert_dict = dict() insert_dict['问卷ID'] = gen_new_rid() for num in range(len(questionnaire['问卷内容'])): questionnaire['问卷内容'][num]['label'] = str(num+1) + '.' + questionnaire['问卷内容'][num]['label'] insert_dict = dict(insert_dict, **questionnaire) search = {"评价类型": insert_dict['评价类型'], "行业": insert_dict['行业']} result = update_data('问卷', '问卷数据', search, insert_dict) if result: return '录入成功' else: return '录入失败' def get_questionnaire_scripts(types, industry): """ 根据评价类型和行业查询相对应问卷数据 Parameters: types: str 评价类型 industry: str 行业 Returns: result: dict 查询结果 """ data = find_records('问卷', '问卷数据', {"评价类型": types, "行业": industry}) if data: return data[0] else: return False