tornado和ajax交互

来源:互联网 发布:查重软件有哪些 编辑:程序博客网 时间:2024/06/08 18:26

tornado和ajax交互:

$(function () {      $('#htmlid1').click(function () {          var a = $('#htmlid2').val();            $.ajax({              type: "post",              dataType: "json",              url: "/any",              data: {                  a:a              },              success: function (res_data) {                  if (res_data) {  $('#htmlid3').show()                    }                    }              },              error: function () {                  alert("failed")              }          });      });  });

class SearchHandler(tornado.web.RequestHandler):        def post(self):                itemname=self.get_argument('a')resvalue={'ab':abw','cd':'cdw'}                self.write(json.dumps(resvalue))

ajax里定义了数据格式后,tornado如何解析数据都行,只要满足自己的需要,但是返回的数据也一定要满足ajax定义的数据格式,否则ajax解析不了就不会执行success后的函数。

由于tornado强大的网页模板渲染能力,就可以把一些本来靠ajax渲染的工作交给tornado来完成,此时tornado需要调用self.render方法。

此时如果也要jquery来渲染前端页面的话,可以将参数放在网页模板里:

{% block head %}  <script type="text/javascript" >  var to_jquery_data={%raw tornado_render_data%}   </script>{% end %}

把相关参数用render方法渲染到模板里,同时记得加raw避免转义即可。


0 0