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使用的模板语法
欢迎关注本站公众号,获取更多信息