• tornado 常见问题处理


    1 怎么获取从页面中的传值
      使用 self.get_body_argument
      tornado的参数存储在self.request.body内,通过json以后就可以直接取值,当初我在前端使用angular时tornado就不能通过self.get_argument()获取到只能用这种办法获得angular post过来的数据。

    2 怎么获取从url传过来的值
      使用self.get_argument
      参考 :https://www.cnblogs.com/x54256/p/8195576.html
      tornado的get和post提交的参数都可以通过self.get_argument()获得。只需要在第一个参数中填写key值就可以获取,第二个参数为默认值

    3 设置cooke过期时间
      self.set_secure_cookie('user_id', '1', expires_days=None, expires=time.time()+900)

    4 write()
      write 可以在同一个处理方法中多次使用write方法
      write方法是写到缓冲区的,我们可以像写文件一样多次使用write方法不断追加响应内容,
        最终所有写到缓冲区的内容一起作为本次请求的响应输出。
      在write函数内部有一句
      if isinstance(chunk, dict):
        chunk = escape.json_encode(chunk)
        如果存在,将会以json的格式去改变协议头,然后json数据
      实际上,我们可以不用自己手动去做json序列化,当write方法检测到我们传入的chunk参数是字典类型后,会自动帮我们转换为json字符串。

    5 如何重写tornado.web.RequestHandler方法

      此方法下有一函数,initialize()

      使用initialize()进行重写

    6 传值html标签转义

      tornado会自动的转义,把所有的输出都作为字符串,这样做的就能防止一些恶意代码在输出到前端时被执行,从而造成数据泄露。

          在django下进行转义  示例 {{ a_tag|safe }}

      1 全局转义,在application中添加配置项

        autoescape= None

      2 在html文档开始添加   {% autoescape None %} #实现整个文档转义

    #在开启全局和文档不转义的情况下,可以使用 escape() 来开启变量的转义

    {{ a_tag }}
    {{ escape(a_tag) }}

      3 也可以使用{% raw a_tag%}来输出不转义内容 

    tornado是默认自动开启转义的,大家可以根据需求来选是否转义,但是要知道转义的本意是来防止浏览器意外执行恶意代码的,所以去掉转义的时候需要谨慎选择。


  • 相关阅读:
    做小程序的流程总结(基本篇)
    ajax页面请求的做的留言板
    模仿文件存储方式,来进行添加、修改、添加子类的操作。
    轮播图(点击之后,会以滑动的形式滑动到指定的图片-有竖向和横向的显示)
    定时器使用实现的动画,宽度、位置等属性
    利用js、html以及Css简单制作了一个模拟手机短信发送
    利用反射获得数据库中存储数据的实现方法
    反射
    equals、static、单例模式的设计
    FPGA设计中的复位
  • 原文地址:https://www.cnblogs.com/Skyda/p/9737637.html
Copyright © 2020-2023  润新知