flask 读取对象内容并封装为json


在用flask开发一个后台管理系统,其中一个功能是实现人工输入成绩并提交到数据库。当前只能完成一次添加一条数据,SQL使用execute,但想要一次提交几条数据。不知道该怎么实现。

自己有想法是,把这个table里的数据封装为json格式,然后使用executemany来提交,但是在python,不知道该怎么把数据封装为json格式,请大神指点

clipboard.png

flask json python

robotky 10 years, 6 months ago

直接把数据放在字典里面,然后调用jsonify,我不知道性能上会不会有什么问题


 from flask import jsonify

_json = jsonify(dic)

英俊小猛男 answered 10 years, 6 months ago

说白了, JSON和Python的字典是一样的

litnoon answered 10 years, 6 months ago

封装json需要自行拼接。Google: javascript form to json 会有很多结果。
更长见的组织方式为getstring。详见jQuery的.serialize()方法。


 $( "form" ).on( "submit", function( event ) {
  event.preventDefault();
  console.log( $( this ).serialize() );
});

e.g.


 <form>
  <select name="single">
    <option>Single</option>
    <option>Single2</option>
  </select>

  <br>
  <select name="multiple" multiple="multiple">
    <option selected="selected">Multiple</option>
    <option>Multiple2</option>
    <option selected="selected">Multiple3</option>
  </select>

  <br>
  <input type="checkbox" name="check" value="check1" id="ch1">
  <label for="ch1">check1</label>
  <input type="checkbox" name="check" value="check2" checked="checked" id="ch2">
  <label for="ch2">check2</label>

  <br>
  <input type="radio" name="radio" value="radio1" checked="checked" id="r1">
  <label for="r1">radio1</label>
  <input type="radio" name="radio" value="radio2" id="r2">
  <label for="r2">radio2</label>
</form>

<p><tt id="results"></tt></p>

<script>
  function showValues() {
    var str = $( "form" ).serialize();
    $( "#results" ).text( str );
  }
  $( "input[type='checkbox'], input[type='radio']" ).on( "click", showValues );
  $( "select" ).on( "change", showValues );
  showValues();
</script>


 //Output
single=Single&multiple=Multiple&multiple=Multiple3&check=check2&radio=radio1

老衲咬杀你 answered 10 years, 6 months ago

题主问的是 但是在python,不知道该怎么把数据封装为json格式 ,我理解也就是在后台怎么用python解析和封装json。给个栗子:


 # -*- coding: utf-8 -*-

import json

#封装json
data=[]
for i in range(5):
    tmp = {}
    tmp['sex'] = 'boy_%s' % i
    tmp['declare'] = 'apple_%s' % i
    data.append(tmp)
json_str = json.dumps(data)
print type(json_str)
#解析json
json_data = json.loads(json_str)
print json_data[1]['sex']

输出:


 <type 'str'>
boy_1

这其实在网上一查就能查到。包括前端获取每个文本框的数据组装成json都可以找到现成的资料。

鋼鉄D加鲁鲁 answered 10 years, 6 months ago

Your Answer