Flask Web框架入门教程

一、Flask简介

Flask是一个轻量级的Web应用框架,使用Python编写。相比于Django等其他大型框架,Flask更加灵活和轻量,非常适合小型到中型的应用开发。它有一个强大的扩展库,可以方便地添加各种功能。

二、安装Flask

你可以使用pip命令来安装Flask:

复制代码

在terminal界面,切换到项目目录下输入

bash 复制代码
pip install Flask

三、创建简单的Flask应用

  1. 创建一个新的Python文件,比如app.py

  2. 导入Flask类:

python 复制代码
from flask import Flask
  1. 创建一个Flask实例:
python 复制代码
app = Flask(__name__)
  1. 定义一个路由:
python 复制代码
@app.route("/"
def hello_world():
    return "hello, world!"

这里,我们定义了一个路由,当用户访问应用的根URL('/')时,Flask会调用hello_world函数,并返回字符串'Hello, World!'。

  1. 运行应用:
复制代码

python复制代码

|---|-------------------------------|
| | if __name__ == '__main__': |
| | app.run(debug=True) |

这将启动一个开发服务器,并在本地主机的5000端口上运行应用。你可以通过浏览器访问http://localhost:5000/来查看应用。

四、路由和视图函数

在Flask中,路由用于将URL映射到视图函数。视图函数是处理请求并返回响应的函数。上面的例子中,我们定义了一个路由'/'和一个视图函数hello_world

你也可以定义带有参数的路由,比如:

复制代码

python复制代码

|---|-------------------------------------|
| | @app.route('/user/<username>') |
| | def show_user_profile(username): |
| | # 显示用户信息 |
| | return 'User %s' % username |

这里,<username>是一个动态部分,它会被匹配到的任何文本替换,并作为参数传递给视图函数。

五、模板

对于复杂的HTML页面,通常使用模板来生成。Flask内置了对Jinja2模板引擎的支持。首先,你需要安装Jinja2:

复制代码

bash复制代码

|---|----------------------|
| | pip install Jinja2 |

然后,在应用中定义一个模板文件夹,并在其中创建模板文件。比如,你可以创建一个名为templates的文件夹,并在其中创建一个名为index.html的模板文件。

在视图函数中,你可以使用render_template函数来渲染模板:

复制代码

python复制代码

|---|----------------------------------------|
| | from flask import render_template |
| | |
| | @app.route('/') |
| | def index(): |
| | return render_template('index.html') |

这将渲染templates/index.html模板,并返回生成的HTML作为响应。

六、扩展和插件

Flask有一个庞大的扩展库,可以方便地添加各种功能,比如数据库支持、表单处理、安全性等。你可以使用pip来安装这些扩展,并在应用中导入和使用它们。

七、部署

当你开发完应用并准备将其部署到生产环境时,你需要选择一个WSGI服务器来运行应用。常见的选择包括Gunicorn、uWSGI等。你也可以使用像Heroku、Docker等云服务来部署和管理你的Flask应用。

这只是一个简单的Flask入门教程,Flask还有很多高级功能和用法等待你去探索和学习。希望这个教程能帮助你开始使用Flask开发Web应用!

相关推荐
lili00123 分钟前
2026 企业 AI 选型新范式:OpenRouter Fusion 证明多模型融合性价比远超单模型,企业该如何重构技术栈? - 微元算力(weytoken)
java·人工智能·python·重构·ai编程
Keano Reurink4 分钟前
搜索API与GSC数据对比:发现数据盲区
数据库·python·数据挖掘
大黄说说20 分钟前
深入理解 Go 协程 Goroutine:并发编程的核心精髓
java·数据库·python
cd9888040 分钟前
2026年,电销机器人哪家强?
python
搏博41 分钟前
多传感器融合基础之一图像空间(Image Space)全面解析
图像处理·python·图像空间·融合感知
2601_961875241 小时前
花生十三资源盘|电子版|全科
python·django·flask·virtualenv·scikit-learn·pygame·tornado
郝学胜-神的一滴1 小时前
完全二叉树与堆底层原理深度剖析 | 手写C++大顶堆实现
java·开发语言·数据结构·c++·python·算法
WangN21 小时前
【通识】宇树G1_29DOF速度跟踪训练—逐章学习手册
人工智能·python·学习·机器人·具身智能
装不满的克莱因瓶1 小时前
掌握语义分割经典模型 FCN——从像素分类到端到端分割的奠基之作
人工智能·python·深度学习·算法·机器学习·分类·数据挖掘
noravinsc1 小时前
关于PEP8
python