Flask—框架基础

版权声明:此博客出自HuQi,感谢您的转载 https://blog.csdn.net/JSYhq/article/details/88604061

一、Flask简单介绍

1. Flask定义

        Flask依赖两个外部库:Werkzeug Jinja2。Werkzeug是一个WSGI(在web应用和多种服务器之间的标准Python接口)工具集。Jinja2负责渲染模板。

        对于Werkzeug本质是socket服务端,其用于接收http请求并对请求进行预处理,然后触发flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。

        Flask的"微",不代表Flask功能不强,微型框架的目标是保持核心简单而又可扩展。一切都由开发者自主定制使用。默认情况下,Flask 不包含数据库抽象层、表单验证或者其他已有的库可以处理的东西。 然而, Flask 通过扩展为你的应用添加这些功能,就如同这些功能是 Flask 生的一样。 大量的扩展用以支持数据库整合、表单验证、上传处理和各种开放验证等等。Flask 可能是 “微小”的,但它已经为满足您的各种生产需要做出了充足的准备。

2. 配置和惯例

        按照惯例, 模板和静态文件存放在应用的 Python 源代码树的子目录中,名称分别为 templates和 static 。惯例是可以改变的,但是你大可不必改变。

3. Flask、Django、tornado比较

  • Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架

  • Tornado 主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架

  • Flask 主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架

4. Flask、Django、tornado优缺点

        Django 通常用于大型Web应用由于内置组件足够强大所以使用Django开发可以一气呵成

        Tornado 通常用于API后端应用,游戏服务后台,其内部实现的异步非阻塞真是稳得一批

        Flask 通常应用于小型应用和快速构建应用,其强大的三方库,足以支撑一个大型的Web应用

        Django 优点是大而全,缺点也就暴露出来了,这么多的资源一次性全部加载,肯定会造成一部分的资源浪费

扫描二维码关注公众号,回复: 5563795 查看本文章

        Tornado 优点是异步,缺点是干净,连个Session都不支持

        Flask 优点是精悍简单,缺点是不稳定,若Flask版本升级,新版flask可能不支持原第三方库版本。

二、Flask安装与使用

1. 安装

pip install Flask

2. 使用

from flask import Flask

# 实例化一个Flask对象
app = Flask(__name__)


# 路由装饰器
@app.route("/main")
def hello_world():    # 视图函数
    return "hello world"


if __name__ == '__main__':
# 启动flask项目; 默认端口5000; debug自动重启
    app.run(host='0.0.0.0', port=5000, debug=True) 

猜你喜欢

转载自blog.csdn.net/JSYhq/article/details/88604061
今日推荐