• 发文
  • 评论
  • 微博
  • 空间
  • 微信

一个用Python编写的轻量的Web开发框架——Flask

飞桨PPDB 2024-03-25 11:14 发文

本文将继续为大家介绍一个轻量的Web开发框架——Flask。

可能有同学会问,前面不是已经介绍了FastAPI吗?有必要学习这么多框架吗?其中缘由,听我娓娓道来。

什么是Flask

Flask

Flask是一个用Python编写的轻量的Web应用程序框架,基于Werkzeug WSGI工具包和Jinja2模板引擎。Flask 也被称为 “microframework”,因为它使用简单的核心,用 extension 增加其他功能。

Flask 没有默认使用的数据库、窗体验证工具。然而,Flask 保留了扩增的弹性,可以用 Flask-extension 加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。

简单说,Flask本身是微型的,但是具备极强的扩展能力以便完成复杂的任务。

相较于FastAPI为编写高性能的API而生,Flask则是在保持轻量的同时增加了对前端页面的渲染等能力。

Flask具备哪些特性

内置开发用服务器和 debugger

集成单元测试(unit testing)

RESTful request dispatching

使用 Jinja2 模板引擎

支持 secure cookies(client side sessions)

100% WSGI 1.0 兼容

Unicode based

详细的文件、教学

Google App Engine 兼容

可用 Extensions 增加其他功能

哪些场景可以用FlaskWeb开发

如果您需要用Python开发一个网站,那么Flask可以作为首选框架之一。如果只是一个简单的项目,那么Flask会很合适。如果是一个大型的项目,则需要随着开发经验的增加,熟悉的扩展越来越多,也就会越来越得心应手。

AI领域

你可能想不到,Flask在AI领域也是功不可没。我们的关注点大多数都在模型上面,但是通常开源模型的同时也会提供一个Demo,供大家快速上手体验。这时Demo的实现就需要用到轻量的Flask同时实现前后端。

函数计算

函数计算可以理解成一个个小的web服务,用于处理我们的业务逻辑,而函数计算的实现也是很大程度上借鉴了Flask,所以使用函数计算会觉得无比亲切。

函数计算是一个事件驱动的全托管 Serverless 计算服务,用户无需管理服务器等基础设施,只需编写代码并上传,函数计算会准备好计算资源,并以弹性、可靠的方式运行业务代码。

快速开始:一个最小的应用安装Flaskpip install Flask

创建app.py文件,编写一个最小的应用from flask import Flask

app = Flask(__name__)

@app.route("/")

def hello_world():

    return "

Hello, World!

"

启动服务

在与app.py同目录下执行命令:

flask run

看到如下提示就说明服务启动成功了。

启动访问

按照提示,在浏览器中打开http://127.0.0.1:5000,则可以看到如下效果

hello world

到此,一个简单的web我们就体验完成了。但是有几点需要特别强调一下。

文件名不需要一定是app.py,如果是其它,比如:hello.py,则在启动服务的时候,启动命令需要修改为:flask --app hello run,用--app指定应用名。

当你修改了代码后,重新刷新浏览器,你会发现页面没有变化。这是因为需要我们开启DEBUG模式,这样每当代码发生改变后服务都会自动重启,我们刷新浏览器也就可以看到变化了。开启DEBUG模式也很简单,把启动命令修改为:flask run --debug

进阶

如果你对Flask已经产生了浓厚的兴趣,那么建议您可以阅读详细、完整的官方文档。

官方文档目前只有英文版,想要阅读中文版的同学,可以关注我,回复:Flask,获取Flask中文文档。

关注我,学习开源技术:

飞桨PPDB

声明:本文为OFweek维科号作者发布,不代表OFweek维科号立场。如有侵权或其他问题,请及时联系我们举报。
2
评论

评论

    相关阅读

    暂无数据

    已认证
    飞桨PPDB

    大数据领域优质创作者...

    举报文章问题

    ×
    • 营销广告
    • 重复、旧闻
    • 格式问题
    • 低俗
    • 标题夸张
    • 与事实不符
    • 疑似抄袭
    • 我有话要说
    确定 取消

    举报评论问题

    ×
    • 淫秽色情
    • 营销广告
    • 恶意攻击谩骂
    • 我要吐槽
    确定 取消

    用户登录×

    请输入用户名/手机/邮箱

    请输入密码