Flask学习
一、Python 现阶段三大主流Web框架 Django Tornado Flask 对比
1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架
2.Tornado 主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架
3.Flask 主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架
Django 通常用于大型Web应用由于内置组件足够强大所以使用Django开发可以一气呵成
Tornado 通常用于API后端应用,游戏服务后台,其内部实现的异步非阻塞真是稳得一批
Flask 通常应用于小型应用和快速构建应用,其强大的三方库,足以支撑一个大型的Web应用
Django 优点是大而全,缺点是会造成一部分的资源浪费
Tornado 优点是异步,缺点是干净,Session都不支持
Flask 优点是精悍简单,缺点是先天不足,第三方组件稳定性较差
二、Flask 的安装
Terminal:
pip install Flask
三、启动Flask Web服务
三行代码启动 Flask 项目
实现了Flask 的第一个HelloWorld程序
代码解读:
四、Flask中的Render、Redirect、HttpResponse
1.Flask中的HTTPResponse
直接返回字符串
2.Flask 中的 render (render_template)
在pycharm中,当没有导入模块提示错误时,按住Alt键加Enter 点击导入
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def home(): return "hello World I am Flask" @app.route('/index') def index(): return render_template('index.html') app.run()
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> 这是index页面 </body> </html>
3 Flask中的Redirect
以上是Web框架的 Response 三剑客
视图函数还可以返回:
send_file() 返回文件内容,自动识别文件类型,Content-type中添加文件类型,Content-type:文件类型
** 浏览器特性 可识别的Content-type 自动渲染 不可识别的Content-type 会自动下载
jsonify() str # 返回标准格式的JSON字符串 先序列化JSON的字典,Content-type中加入 Application/json3
** Flask 1.1.1 版本中 可以直接返回字典格式,无需jsonify