zoukankan      html  css  js  c++  java
  • Django、Flask、Tornado的比较

    一:常用请求参数的接收

    • Django中:
      request.GET/POST
    • Tornado中:
      self.get_query_argument()/get_query_arguments()
      self.get_body_argument()/get_body_arguments()
      self.get_argument()/get_arguments()
    • Flask中:
      request.args.get('key')
      request.form.get(;key')

    二:常用请求方式的区分

    • Django中:
      通过request.method == "GET" / "POST"进行视图函数中不同请求方式的处理区分
      同样可以通过装饰器注解方式:@require_POST @require_GET方式指定视图函数只能接收那种请求方式
    • Tornado中:
      可以通过直接重写父类RequestHandler中get/post/..的请求处理方法来实现不同的请求方式的区分
    • Flask中:
      通过路由装饰器注解的methods属性来指定视图处理函数可以接收那种请求方式
      @app.route("/", methods=["get", "post"..])

    三:静态文件和网页模板的处理

    • Django中:
      子模块应用:templates/默认保存网页模板;static/默认保存静态资源;不需要配置
      根项目:settings.py中通过TEMPLATES>DIRS配置网页模板文件夹,通过STATICFILES_DIRS配置静态资源文件夹
    • Tornado中:
      通过tornado.web.Application中的配置选项
      template_path配置网页模板文件夹位置,static_path配置静态资源文件夹位置
    • Flask中:
      默认templates/中保存网页模板;static/中保存静态资源,不需要配置

    四:模板语法操作:

    • Django中:
      默认使用自己的模板语法:Django Template Language:DTL语法
    • Tornado中:
      默认使用jinja模板语法:~经过一定改造的模板语法
    • Flask中:
      默认使用第三方的jinja2模板语法,是在DTL语法的基础上完善的一种专门给python使用的模板语法



  • 相关阅读:
    原生js实现 table表格列宽拖拽
    vue.js 利用SocketCluster实现动态添加数据及排序
    angular-websocket.js 使用
    判断当前页面是否是激活状态。
    remove ---会报错discard不会报错
    .pop ----remove 删除
    add添加
    #将相同值输出,取一个值
    集合
    __delattr__\__delitem__
  • 原文地址:https://www.cnblogs.com/wjs521/p/10451399.html
Copyright © 2011-2022 走看看