django、tornado、flask对比
一、django组件
- socket-------无,使用wsgi
- 中间件
- 路由系统
- 视图
- 模板引擎
- 模板语言
- cookie
- session
- csrf
- xss
- 缓存
- 信号
- Form
- Admin
- ORM
二、tornado组件
- socket-------有,自带
- 中间件-------无
- 路由系统
- 视图
- 模板引擎
- 模板语言--------有,uimethod,uimodule
- cookie
- session-------无
- csrf
- xss
- 缓存-------无
- 信号-------无
- Form-------无
- Admin-------无
- ORM-------无
2.1 程序启动
1 import tornado.ioloop 2 import tornado.web 3 from settings import SETTINGS 4 from views import login 5 6 7 application = tornado.web.Application([ 8 (r"/login", login.LoginHandler), 9 (r"/index", login.IndexHandler), 10 ],**SETTINGS 11 ) 12 13 14 if __name__ == "__main__": 15 application.listen(8888) 16 tornado.ioloop.IOLoop.instance().start()
2.2 路由系统
application = tornado.web.Application([(r"/login", login.LoginHandler,{要传给视图的函数},反向生成urlname),(r"/index", login.IndexHandler), ],**SETTINGS )
2.3 视图函数
class LoginHandler(RequestHandler):def get(self, *args, **kwargs):self.render("login.html",msg="")self的方法
self.application.reverse_url("name","arg1") #反向生成url self.write()self.render("login.html",msg="用户名或密码错误")self.redirect() self.get_argument() #取get和post里的数据
self.get_query_argument() #取get里的数据
self.get_body_argument() #取post里的数据 #####cookie#######self.set_cookie()self.set_secure_cookie() 配置里"cookie_sercet":"salt..."
2.4 配置文件
settings = {"template_path":"template", #模板路径"static_path":"static", #静态文件路径"static_url_prefix":"/static/" }
2.5 xsrf
{%raw xsrf_form_html()%}配置里"xsrf_cookies":True
2.6 模板语言
{%for item in user_list%}{{item["user"]}} {%end%}#######引入css、js文件######## <link rel="stylesheet" href="{{ static_url('common.css') }}">
三、flask组件
- socket-------无
- 中间件
- 路由系统
- 视图
- 模板引擎
- 模板语言
- cookie
- session------有,但使用的是加密cookie,保存在客户端
- csrf
- xss
- 缓存
- 信号-------无
- Form-------无,有扩展插件WTForms
- Admin-------无
- ORM-------无
3.1 基本使用
from flask import Flask app = Flask(__name__)@app.route('/') def hello_world():return 'Hello World!'if __name__ == '__main__':app.run()
3.2 中间件
app.secret_key = 'some_secret' #加密cookie设置 app.wsgi_app = MiddleWare(app.wsgi_app) #指向新定义的类class MiddleWare:def __init__(self,wsgi_app):self.wsgi_app = wsgi_appdef __call__(self, *args, **kwargs):return self.wsgi_app(*args, **kwargs) #自定义的类,在传给视图函数前执行
3.3 路由系统
1、装饰器 @app.route('/user/<username>')DEFAULT_CONVERTERS = {'default': UnicodeConverter,'string': UnicodeConverter,'any': AnyConverter,'path': PathConverter,'int': IntegerConverter,'float': FloatConverter,'uuid': UUIDConverter, }2、app.add_url_rule("/index",view_func=func1,endpoint="reverse_name",method=[] )
蓝图路由分发蓝图URL前缀:xxx = Blueprint('account', __name__,url_prefix='/xxx' )蓝图子域名:xxx = Blueprint('account', __name__,subdomain='admin' ) # 前提需要给配置SERVER_NAME:app.config['SERVER_NAME'] = 'baidu.com'
3.4 session
设置:session['username'] = 'xxx'删除:session.pop('username', None)
app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'
message是一个基于Session实现的用于保存数据的集合,其特点是:使用一次就删除。
3.5 请求相关信息
请求相关信息request.methodrequest.argsrequest.formrequest.valuesrequest.cookiesrequest.headersrequest.pathrequest.full_pathrequest.script_rootrequest.urlrequest.base_urlrequest.url_rootrequest.host_urlrequest.hostrequest.filesobj = request.files['the_file_name']obj.save('/var/www/uploads/'+secure_filename(f.filename))响应相关信息return "字符串"return render_template('html模板路径',**{})return redirect('/index.html')response = make_response(render_template('index.html'))# response是flask.wrappers.Response类型# response.delete_cookie('key')# response.set_cookie('key', 'value')# response.headers['X-Something'] = 'A value'# return response
3.6 配置文件
app.config.from_pyfile("settings.py")
转载于:https://www.cnblogs.com/igzh/p/9015165.html
django、tornado、flask对比相关推荐
- Flask/Django/Tornado语法对比(持续更新中)
表格如下[1](加入了一些自己想到的补充): Flask Django Tornado 请求方式限定 @app.route('/login/', methods=['GET','POST']) @ ...
- python twisted和flask_浅谈Python Web 框架:Django, Twisted, Tornado, Flask, Cyclone 和 Pyramid...
Django 是一个高级的 Python Web 框架,支持快速开发,简洁.实用的设计.如果你正在建一个和电子商务网站相似的应用,那你应该选择用 Django 框架.它能使你快速完成工作,也不必担心太 ...
- Django、Flask、Tornado的区别
Django.Flask.Tornado的区别? Django:Python 界最全能的 web 开发框架,battery-include 各种功能完备,可维护性和开发速度一级棒.常有人说 Djang ...
- Python web后端开发框架 Django 、Flask、Tornado
由于Python的简洁 易读 强大 高效 现在Python应用在文件处理.网络编程.数据库编程.游戏.Web开发.数据分析.机器学习等各个领域. 就Web开发而言,为了提高开发效率,应运而生了很多框 ...
- Python 里最强的Web框架,早就不是Django和Flask了
来自:掘金,作者:ConnorZhang 链接:https://juejin.cn/post/6944598601674784775 如果说要用 Python 进行 web 开发,我想你一定会告诉我 ...
- django restframework 下载文件_【技术选型】Django还是Flask?这是个问题!
Django和Flask,是Python语言在WEB开发领域中占据了半壁江山的两个框架.在我们实际开发过程中,如何从这两者之间二选一呢? 01 半壁江山的两个WEB框架 在2019年Python官方年 ...
- bert中文短文本句向量生成、相似度计算(GPU版、windows、win10、linux、django和flask可用)
BERT句向量GPU线上调用等.出现Floating point exception and SystemError: error return without exception set . 最近上 ...
- 关于Django、Flask的一些面试知识点
Django 1.Django. Flask.Tornado框架的比较? Django: 对于Django,大而全的框架它的内部组件比较多,内部提供:ORM.Admin.中间件.Form.ModelF ...
- python flask与django的区别_真正搞明白Python中Django和Flask框架的区别
Django和Flask的区别 1.形象类比 如果Django类似于精装修的房子,自带豪华家具.非常齐全功能强大的家电,什么都有了,拎包入住即可,十分方便. 而Flask类似于毛坯房,自己想把房子装修 ...
- python flask和django_真正搞明白Python中Django和Flask框架的区别
在谈Python中Django框架和Flask框架的区别之前,我们需要先探讨如下几个问题. 一.为什么要使用框架? 为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应 ...
最新文章
- 连续发表三篇NAR的数据库文章——数据库承建
- LeetCode 5 最长回文子串
- 掌握这些 Redis 技巧,百亿数据量不在话下!
- Python 一键导出微信阅读记录和笔记,666!
- 好大夫王航:长尾开发者应尽快接入百度轻应用
- 再拔头筹,FusionInsight为华为云大数据打造硬实力
- JS实现新打开网页最大化or全屏显示
- python 计算机程序设计-计算机程序设计(Python)
- android 下载网络图片并缓存
- 在线教学战“疫”打响,VIPKID背后是阿里云
- 最新布尔教育Blog项目实战 php博客项目实战教程 php实战教程(完整)
- 英雄联盟php文件,英雄联盟-QQ网吧游戏特权-QQ网吧
- V-REP仿真环境的简单应用及RemoteAPI控制
- linux 如何配置无线网卡驱动,Linux配置无线网卡驱动实现无线上网
- 本地网络出现了一个意外的情况,不能完成所有你在设置中所要求的更改
- python画笛卡尔心形线_伊对:学霸如何谈恋爱?揭秘不同专业的学霸表白方式
- 我的世界rpg服务器无限点卷无限金币地址,我的世界RPG插件无限刷任何物品 | 手游网游页游攻略大全...
- python 学习爬取哔哩哔哩今日热门的前100个视频
- 专插本 计算机基础与程序设计 2020届考生纯手敲 C语言与数据结构学习中遇到的所有问题都在这里了,建议直接三连
- 学习编程的基础(学编程的基础要具备什么)