if request.method in ["POST", "GET"]: msg = {"code": normal_code, "msg": "成功", "data": {}} req_dict = request.session.get("req_dict") where = ' where 1 = 1 ' for key in req_dict: if req_dict[key] != None: where = where + " and key like '{0}'".format(req_dict[key]) token = request.META.get('HTTP_TOKEN') decode_str = eval(base64.b64decode(token).decode("utf8")) if decode_str['tablename'] == 'lingdao': where = where + " and lingdaogonghao ='{0}' ".format(decode_str['params']['lingdaogonghao']) if decode_str['tablename'] == 'qiye': where = where + " and qiyemingcheng ='{0}' ".format(decode_str['params']['qiyemingcheng']) sql = "SELECT count(*) AS count FROM huodongbaoming {0}".format(where) count = 0 cursor = connection.cursor() cursor.execute(sql) desc = cursor.description data_dict = [dict(zip([col[0] for col in desc], row)) for row in cursor.fetchall()] for online_dict in data_dict: count = online_dict['count'] msg['data'] = count return JsonResponse(msg)
时间: 2024-03-31 07:31:52 浏览: 55
根据你提供的代码,这是一个Django框架的视图函数,用于处理GET和POST请求。它从请求中获取一个req_dict字典,然后通过其中的键值对来构建一个SQL查询语句的WHERE子句。如果请求中包含一个名为"token"的HTTP头部,它会对其进行解码,并根据解码出的内容构建额外的WHERE子句。最后,它执行构建好的SQL查询,并将结果封装在一个JSON响应中返回。
其中,normal_code是一个自定义的状态码,用于表示请求成功的状态;msg是一个包含状态码、消息和数据的字典;data_dict是一个包含查询结果的字典列表;JsonResponse是Django框架提供的用于返回JSON响应的函数。
相关问题
def huiyuanchongzhi_save(request): ''' 后台新增 ''' if request.method in ["POST", "GET"]: msg = {"code": normal_code, "msg": mes.normal_code, "data": {}} req_dict = request.session.get("req_dict") if 'clicktime' in req_dict.keys(): del req_dict['clicktime'] tablename=request.session.get("tablename") __isAdmin__ = None allModels = apps.get_app_config('main').get_models() for m in allModels: if m.__tablename__==tablename: try: __isAdmin__ = m.__isAdmin__ except: __isAdmin__ = None break #获取全部列名 columns= huiyuanchongzhi.getallcolumn( huiyuanchongzhi, huiyuanchongzhi) if tablename!='users' and req_dict.get("userid")!=None and 'userid' in columns and __isAdmin__!='是': params=request.session.get("params") req_dict['userid']=params.get('id') if 'addtime' in req_dict.keys(): del req_dict['addtime'] error= huiyuanchongzhi.createbyreq(huiyuanchongzhi,huiyuanchongzhi, req_dict) if error!=None: msg['code'] = crud_error_code msg['msg'] = error return JsonResponse(msg)
这段代码是一个 Django 后台新增功能的视图函数。它接收一个 HTTP 请求,如果请求方法是 POST 或 GET,就会创建一个空的字典 msg 作为响应,然后从 session 中获取请求参数 req_dict 和表名 tablename。接下来,通过 Django 的 apps.get_app_config 函数获取当前应用程序中的所有模型,再通过循环找到与 tablename 对应的模型,并从模型中获取是否为管理员的信息 __isAdmin__。然后,通过调用 huiyuanchongzhi 模型的 getallcolumn 函数获取该模型的所有列名,并检查当前用户是否为管理员或者该表不存在用户id列。如果不是管理员或不存在用户id列,则从 session 中获取参数 params 并将其添加到请求字典中。最后,它调用 huiyuanchongzhi 模型的 createbyreq 函数将请求字典中的数据保存到数据库中,并将保存结果添加到响应字典中并返回。
def jiarushetuanshenqing_add(request): ''' 前台新增 ''' if request.method in ["POST", "GET"]: msg = {"code": normal_code, "msg": mes.normal_code, "data": {}} req_dict = request.session.get("req_dict") #获取全部列名 columns= jiarushetuanshenqing.getallcolumn( jiarushetuanshenqing, jiarushetuanshenqing) try: __authSeparate__=jiarushetuanshenqing.__authSeparate__ except: __authSeparate__=None if __authSeparate__=="是": tablename=request.session.get("tablename") if tablename!="users" and 'userid' in columns: try: req_dict['userid']=request.session.get("params").get("id") except: pass try: __foreEndListAuth__=jiarushetuanshenqing.__foreEndListAuth__ except: __foreEndListAuth__=None if __foreEndListAuth__ and __foreEndListAuth__!="否": tablename=request.session.get("tablename") if tablename!="users": req_dict['userid']=request.session.get("params").get("id") error= jiarushetuanshenqing.createbyreq(jiarushetuanshenqing,jiarushetuanshenqing, req_dict) if error!=None: msg['code'] = crud_error_code msg['msg'] = error return JsonResponse(msg)
这是一个 Django 视图函数,用于处理前端新增申请的请求。它首先检查请求的方法是否为 POST 或 GET,然后从会话中获取请求数据(req_dict)和表名(tablename)。
接下来,它获取表格的所有列名(columns)和表格的权限设置(__authSeparate__和__foreEndListAuth__)。如果__authSeparate__为"是",则将请求数据中的userid设置为当前用户的id。如果__foreEndListAuth__存在且不为"否",则也将请求数据中的userid设置为当前用户的id。
最后,它使用请求数据(req_dict)创建一个新的记录,并返回一个带有成功或失败消息的 JSON 响应。
阅读全文