跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Flask
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{Infobox software | name = Flask | logo = | screenshot = | caption = | developer = [[Armin Ronacher]] | released = {{Start date and age|2010|04|01}} | latest release version = 2.3.x | latest release date = {{Start date and age|2023|05|xx}} | programming language = [[Python]] | operating system = 跨平台 | genre = [[Web框架]] | license = [[BSD许可证]] | website = {{URL|https://palletsprojects.com/p/flask/}} }} '''Flask'''是一个用[[Python]]编写的轻量级[[Web框架]],由Armin Ronacher开发并于2010年首次发布。它基于[[Werkzeug]] WSGI工具包和[[Jinja2]]模板引擎,被设计为易于使用且高度可扩展的微框架。 == 特点 == Flask具有以下主要特点: * '''轻量级''':核心功能精简,通过扩展机制添加所需功能 * '''灵活性''':不强制使用特定项目结构或组件 * '''内置开发服务器''':方便快速开发和测试 * '''集成单元测试支持''' * '''RESTful请求分发''' * '''Jinja2模板引擎''' * '''安全的Cookie支持(客户端会话)''' * '''100% WSGI 1.0兼容''' == 安装 == 使用pip安装Flask: <syntaxhighlight lang="bash"> pip install flask </syntaxhighlight> == 基本用法 == 以下是一个最简单的Flask应用示例: <syntaxhighlight lang="python"> from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run() </syntaxhighlight> 运行此应用后,访问[http://localhost:5000/](http://localhost:5000/)将显示"Hello, World!"。 == 路由 == Flask使用装饰器定义路由: <syntaxhighlight lang="python"> @app.route('/user/<username>') def show_user_profile(username): return f'User {username}' </syntaxhighlight> == 模板 == Flask默认使用Jinja2模板引擎。示例模板文件`templates/hello.html`: <syntaxhighlight lang="html"> <!doctype html> <title>Hello from Flask</title> {% if name %} <h1>Hello {{ name }}!</h1> {% else %} <h1>Hello World!</h1> {% endif %} </syntaxhighlight> 对应的视图函数: <syntaxhighlight lang="python"> from flask import render_template @app.route('/hello/') @app.route('/hello/<name>') def hello(name=None): return render_template('hello.html', name=name) </syntaxhighlight> == 扩展 == Flask通过扩展添加功能,常用扩展包括: * '''Flask-SQLAlchemy''':数据库集成 * '''Flask-WTF''':表单处理 * '''Flask-Login''':用户认证 * '''Flask-RESTful''':构建REST API * '''Flask-SocketIO''':实时Web功能 == 与Django比较 == 与[[Django]]相比,Flask: * 更轻量级,适合小型项目和微服务 * 提供更多选择自由,不强制使用特定组件 * 学习曲线更平缓 * 需要手动集成更多功能(通过扩展) == 应用场景 == Flask适合以下场景: * 小型Web应用和API服务 * 快速原型开发 * 微服务架构中的服务组件 * 需要高度定制化的项目 * 教育目的(学习Web开发基础) == 实际案例 == 许多知名公司使用Flask构建服务,包括: * Netflix(部分内部工具) * Airbnb(部分API) * Lyft(部分后台服务) * Reddit(早期版本) * MIT(在线课程平台) == 学习资源 == * [https://flask.palletsprojects.com/ 官方文档] * 《Flask Web开发实战》 * 《Flask入门教程》 * [https://djangogirls.org/ Flask Girls教程](与Django Girls类似) == 参见 == * [[Python]] * [[Web框架]] * [[Django]] * [[FastAPI]] * [[Pyramid]] [[Category:Web框架]] [[Category:Python库]] [[Category:开源软件]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:Infobox
(
编辑
)
模板:Infobox software
(
编辑
)
模板:Infobox software/simple
(
编辑
)
模板:MONTHNAME
(
编辑
)
模板:MONTHNUMBER
(
编辑
)
模板:Main other
(
编辑
)
模板:Plainlist
(
编辑
)
模板:Plainlist/styles.css
(
编辑
)
模板:Start date and age
(
编辑
)
模板:Template link expanded
(
编辑
)
模板:Template other
(
编辑
)
模板:Time ago
(
编辑
)
模板:Tlx
(
编辑
)
模板:Trim
(
编辑
)
模板:URL
(
编辑
)
模板:Wikidata
(
编辑
)
模板:Yesno
(
编辑
)
模块:Arguments
(
编辑
)
模块:Check for unknown parameters
(
编辑
)
模块:Date
(
编辑
)
模块:Infobox
(
编辑
)
模块:Infobox/styles.css
(
编辑
)
模块:InfoboxImage
(
编辑
)
模块:Template link general
(
编辑
)
模块:Time ago
(
编辑
)
模块:URL
(
编辑
)
模块:Wd
(
编辑
)