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使用的模板語法
相關文章
相關標籤/搜索