Flask—框架基础

本文介绍了Flask框架的基础知识,包括其依赖的Werkzeug和Jinja2库,以及与Django、tornado的比较。Flask以其微小但功能强大的特性,允许开发者自由定制。同时,文章还涉及Flask的配置惯例以及安装使用步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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 优点是大而全,缺点也就暴露出来了,这么多的资源一次性全部加载,肯定会造成一部分的资源浪费

        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) 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值