[django]从前端返回字符串,后端转换为字典,执行数据添加操作

具体如题:

js代码如下:

$(‘#bill_add‘).click(function(){//合同添加
          var bill1 = $("#bill1").val();var bill2 = $("#bill2").val();var bill3 = $("#bill3").val();var bill4 = $("#bill4").val();var bill5 = $("#bill5").val();
          var bill6 = $("#bill6").val();var bill7 = $("#bill7").val();var bill8 = $("#bill8").val();var bill9 = $("#bill9").val();var bill10 = $("#bill10").val();
          var bill11 = $("#bill1").val();var bill12 = $("#bill12").val();var bill13 = $("#bill13").val();var bill14 = $("#bill14").val();var bill15 = $("#bill15").val();
          var bill16 = $("#bill16").val();var bill17 = $("#bill17").val();var bill18 = $("#bill18").val();var bill19 = $("#bill19").val();var bill20 = $("#bill20").val();
          var bill21 = $("#bill21").val();var bill22 = $("#bill22").val();var bill23 = $("#bill23").val();var bill24 = $("#bill24").val();var bill25 = $("#bill25").val();
          var bill26 = $("#bill26").val();var bill27 = $("#bill27").val();var bill28 = $("#bill28").val();var bill29 = $("#bill29").val();var bill30 = $("#bill30").val();
          var bill31 = $("#bill31").val();var bill32 = $("#bill32").val();var bill33 = $("#bill33").val();var bill34 = $("#bill34").val();var bill35 = $("#bill35").val();
          var bill36 = $("#bill36").val();var bill37 = $("#bill37").val();var bill38 = $("#bill38").val();var bill39 = $("#bill39").val();var bill40 = $("#bill40").val();
          var bill41 = $("#bill41").val();
          $.post("{% url ‘add_contract‘ %}",
              {
                  csrfmiddlewaretoken:"{{ csrf_token }}",
                  bill_str:"{‘bill1‘:‘"+bill1+"‘,	‘bill2‘:‘"+bill2+"‘,	‘bill3‘:‘"+bill3+"‘,	‘bill4‘:‘"+bill4+"‘,	‘bill5‘:‘"+bill5+"‘,"
                          +"‘bill6‘:‘"+bill6+"‘,	‘bill7‘:‘"+bill7+"‘,	‘bill8‘:‘"+bill8+"‘,	‘bill9‘:‘"+bill9+"‘,	‘bill10‘:‘"+bill10+"‘,"
                          +"‘bill11‘:‘"+bill11+"‘,	‘bill12‘:‘"+bill12+"‘,	‘bill13‘:‘"+bill13+"‘,	‘bill14‘:‘"+bill14+"‘,	‘bill15‘:‘"+bill15+"‘,"
                          +"‘bill16‘:‘"+bill16+"‘,	‘bill17‘:‘"+bill17+"‘,	‘bill18‘:‘"+bill18+"‘,	‘bill19‘:‘"+bill19+"‘,	‘bill20‘:‘"+bill20+"‘,"
                          +"‘bill21‘:‘"+bill21+"‘,	‘bill22‘:‘"+bill22+"‘,	‘bill23‘:‘"+bill23+"‘,	‘bill24‘:‘"+bill24+"‘,	‘bill25‘:‘"+bill25+"‘,"
                          +"‘bill26‘:‘"+bill26+"‘,	‘bill27‘:‘"+bill27+"‘,	‘bill28‘:‘"+bill28+"‘,	‘bill29‘:‘"+bill29+"‘,	‘bill30‘:‘"+bill30+"‘,"
                          +"‘bill31‘:‘"+bill31+"‘,	‘bill32‘:‘"+bill32+"‘,	‘bill33‘:‘"+bill33+"‘,	‘bill34‘:‘"+bill34+"‘,	‘bill35‘:‘"+bill35+"‘,"
                          +"‘bill36‘:‘"+bill36+"‘,	‘bill37‘:‘"+bill37+"‘,	‘bill38‘:‘"+bill38+"‘,	‘bill39‘:‘"+bill39+"‘,	‘bill40‘:‘"+bill40+"‘,"
                          +"‘bill41‘:‘"+bill41+"‘}",
              },
              function(data,status) {
;                 $(‘#test‘).html(data[‘bill40‘]);
              }
          )
      });

view中代码:

def add_contract(request):
    bill_str = (request.POST[‘bill_str‘])
    bill_dic = eval(bill_str)
    Bill.objects.create(contract_code=bill_dic[‘bill1‘],contract_name=bill_dic[‘bill2‘],new_flag=bill_dic[‘bill3‘],original_code=bill_dic[‘bill4‘],
                        con_type=bill_dic[‘bill5‘],rep_nbr=bill_dic[‘bill6‘],acc_code=bill_dic[‘bill7‘],pstn_count=bill_dic[‘bill8‘],
                        pstn_cost=bill_dic[‘bill9‘],remark_one=bill_dic[‘bill10‘],fibeione=bill_dic[‘bill11‘],fibeione_cost=bill_dic[‘bill12‘],
                        remark_two=bill_dic[‘bill13‘],fibeitwo=bill_dic[‘bill14‘],fibeitwo_cost=bill_dic[‘bill15‘],remark_three=bill_dic[‘bill16‘],
                        cmda_count=bill_dic[‘bill17‘],cmda_cost=bill_dic[‘bill18‘],remark_four=bill_dic[‘bill19‘],qtsl_one=bill_dic[‘bill20‘],
                        qtfy_one=bill_dic[‘bill21‘],remark_five=bill_dic[‘bill22‘],qtsl_two=bill_dic[‘bill23‘],qtfy_two=bill_dic[‘bill24‘],
                        remark_six=bill_dic[‘bill25‘],qtsl_thr=bill_dic[‘bill26‘],qtfy_thr=bill_dic[‘bill27‘],remark_sev=bill_dic[‘bill28‘],
                        qtsl_fou=bill_dic[‘bill29‘],qtfy_fou=bill_dic[‘bill30‘],remark_egh=bill_dic[‘bill31‘],old_charge=bill_dic[‘bill32‘],
                        charge=bill_dic[‘bill33‘],deal_type=bill_dic[‘bill34‘],con_age=bill_dic[‘bill35‘],con_eff_date=bill_dic[‘bill36‘],
                        con_exp_date=bill_dic[‘bill37‘],con_sign_date=bill_dic[‘bill38‘],con_agent=bill_dic[‘bill39‘],charge_type=bill_dic[‘bill40‘],
                        payment=bill_dic[‘bill41‘])

    #bill_data = Bill.objects.all
    return JsonResponse(bill_dic)

实际上文章采用的是从前端返回字典的字符串形式,例如"{‘a‘:‘a‘}",然后在python中利用eval函数将其转换为字典形式,然后赋值执行django模型添加数据函数

这样可以不用后端request.POST一大堆数据,例如我上面bill1到bill41岂不是要request.POST40次,这样太麻烦了!

时间: 2024-11-10 07:03:49

[django]从前端返回字符串,后端转换为字典,执行数据添加操作的相关文章

怎样把一个字典的数据添加到另一个字典中?

这种简单的需求Foundation API就已经完成的很好了. 创建一个包含其他字典的字典:[NSDictionary dictionaryWithDictionary:sourceDict] 将其他字典的内容添加到目标字典:[destinationDict addEntriesFromDictionary:sourceDict]

解决php使用json_encode在前端返回字符串的问题

$.post('?',{user:user,passwd:passwd},function(e){}) 解决方法$.post添加第四个参数 $.post('?',{user:user,passwd:passwd},function(e){},'json') 原文地址:https://www.cnblogs.com/wangdeguao/p/9109148.html

ASP.Net中通过Jquery前端对Repeater控件绑定的数据进行操作

说明:由于Repeater控件是动态绑定,通过Id获取数据只能默认获取第一行: 1.对Repeater中div设置样式 2.通过$(".css").each(function(){dosome();})循环出样式为css的所有数据:比如根据不同数据值才显示不同的背景颜色: 效果: 4.如果有翻页的话,可以到后台注册一个JS函数: 前端:定义一个function 后台注册:

django 实现前端 进度条

django 实现前端 进度条 后端 安装模块 channels==2.1.5 channels-redis==2.3.1 anyjson==0.3.3 asgi-redis==1.4.3 asgiref==2.3.0 asn1crypto==0.24.0 async-timeout==2.0.1 Twisted==18.9.0 启动一个redis 新建django程序 quan 目录结构 quan quan asgi.py consumers.py routing.py settings.py

php strpos返回字符串首次出现的位置

(PHP 4, PHP 5, PHP 7) strpos — 查找字符串首次出现的位置 说明 mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) 返回 needle 在 haystack 中首次出现的数字位置. 参数 haystack 在该字符串中进行查找. needle 如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值. offset 如果提供了此参数,搜索会从字符串该字符数的

Objective-C中把URL请求的参数转换为字典

上一篇博客中是把URL转换为字典,那么我们如何把URL请求中的参数封装成字典,然后再封装成数组呢?对OC中字符串操作熟练的小伙伴们应该觉得这是一个a+b的问题,没错把URL中的参数转换为字典主要是对字符串的截取,关键是怎么个截法,才能把字符串中的参数列表分别转换成键值对.下面是小菜自己的转换思路,如果有更好的结局方法还请批评指正,相互学习交流一下,转载请注明出处. 首先我们得会一个字符串拆分函数 componentsSeparatedByString:@"&",把字符串按照&a

对一个前端使用AngularJS后端使用ASP.NET Web API项目的理解(4)

chsakell分享了一个前端使用AngularJS,后端使用ASP.NET Web API的项目. 源码: https://github.com/chsakell/spa-webapi-angularjs文章:http://chsakell.com/2015/08/23/building-single-page-applications-using-web-api-and-angularjs-free-e-book/ 这里记录下对此项目的理解.分为如下几篇: ● 对一个前端使用AngularJ

对一个前端使用AngularJS后端使用ASP.NET Web API项目的理解(3)

chsakell分享了一个前端使用AngularJS,后端使用ASP.NET Web API的项目. 源码: https://github.com/chsakell/spa-webapi-angularjs文章:http://chsakell.com/2015/08/23/building-single-page-applications-using-web-api-and-angularjs-free-e-book/ 这里记录下对此项目的理解.分为如下几篇: ● 对一个前端使用AngularJ

对一个前端使用AngularJS后端使用ASP.NET Web API项目的理解(1)

chsakell分享了一个前端使用AngularJS,后端使用ASP.NET Web API的项目. 源码: https://github.com/chsakell/spa-webapi-angularjs文章:http://chsakell.com/2015/08/23/building-single-page-applications-using-web-api-and-angularjs-free-e-book/ 这里记录下对此项目的理解.分为如下几篇: ● 对一个前端使用AngularJ