第1课_Flask 框架简介
热度🔥:34 免费课程
授课语音
Flask 框架简介
Flask 是一个轻量级的 Python Web 应用框架,它基于 WSGI(Web Server Gateway Interface)协议,采用了简单且灵活的设计理念。Flask 非常适合开发小型到中型的 Web 应用,并且在大型应用中也能通过插件扩展其功能。
本课将介绍 Flask 框架的核心概念,包括其安装、应用结构以及基本的 Web 开发操作。通过本课,您将掌握使用 Flask 框架开发简单 Web 应用的基础。
1. Flask 框架概述
Flask 是一个基于 Werkzeug 和 Jinja2 的 Web 框架。Werkzeug 提供了 WSGI 实现,而 Jinja2 则是一个现代化的模板引擎。Flask 的设计理念是 "微框架",它只提供核心功能,允许开发者自由选择其他组件(如数据库、认证系统等)。
1.1 Flask 的特点
- 轻量和灵活:Flask 只提供最基础的 Web 开发功能,开发者可以根据需求自由扩展。
- 易于上手:Flask 的 API 设计简洁直观,非常适合初学者。
- 强大的扩展性:Flask 提供丰富的扩展包,支持数据库、表单验证、身份验证、文件上传等常见功能。
2. Flask 安装
2.1 安装 Flask
首先,您需要安装 Flask。推荐使用 Python 的包管理工具 pip
来安装 Flask:
pip install Flask
2.2 验证安装
安装完成后,您可以通过以下命令验证 Flask 是否安装成功:
python -m flask --version
您应该会看到类似于以下的信息:
Flask 2.0.1
Werkzeug 2.0.1
3. Flask 项目结构
一个典型的 Flask 项目结构如下:
/my_flask_app
/templates
/static
app.py
config.py
app.py
:Flask 应用的入口文件,包含路由和视图函数。config.py
:配置文件,存放应用的各种配置(如数据库连接信息)。/templates
:存放 HTML 模板文件。/static
:存放静态文件(如 CSS、JavaScript、图片等)。
4. Flask 基本应用
4.1 创建一个简单的 Flask 应用
以下是创建一个最基本 Flask 应用的代码示例:
from flask import Flask
# 创建一个 Flask 应用实例
app = Flask(__name__)
# 定义一个路由,处理根路径请求
@app.route('/')
def hello_world():
return 'Hello, World!'
# 启动应用
if __name__ == '__main__':
app.run(debug=True)
4.2 代码解析
Flask(__name__)
:创建一个 Flask 应用实例,__name__
是当前 Python 模块的名字,Flask 会根据该信息来确定应用的根路径。@app.route('/')
:定义一个路由,当用户访问根路径/
时,调用hello_world
函数并返回响应。app.run(debug=True)
:启动应用并启用调试模式,这样每次代码修改后会自动重启应用并显示详细错误信息。
4.3 运行应用
保存代码为 app.py
,在命令行中运行以下命令启动 Flask 应用:
python app.py
浏览器访问 http://127.0.0.1:5000/
,您将看到 "Hello, World!" 的输出。
5. Flask 路由和视图函数
Flask 使用装饰器来定义路由,路由用于将 URL 与视图函数(即处理请求的函数)关联起来。通过不同的 HTTP 方法(如 GET、POST)来处理客户端请求。
5.1 定义多个路由
您可以为不同的 URL 路径定义多个视图函数。例如:
@app.route('/')
def home():
return 'Welcome to the Flask App!'
@app.route('/about')
def about():
return 'This is a simple Flask application.'
5.2 路由参数
Flask 支持通过路由动态传递参数。例如,下面的代码会捕获 URL 中的 username
参数:
@app.route('/hello/<username>')
def greet_user(username):
return f'Hello, {username}!'
如果用户访问 http://127.0.0.1:5000/hello/John
,将返回 "Hello, John!"。
6. Flask 模板引擎 - Jinja2
Flask 使用 Jinja2 作为模板引擎,允许开发者在 HTML 文件中嵌入 Python 代码。模板引擎通过控制结构(如循环、条件语句)使得 HTML 动态生成。
6.1 渲染模板
Flask 提供了 render_template
函数来渲染模板文件。例如,您可以创建一个模板文件 hello.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello {{ name }}</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
然后在视图函数中使用 render_template
渲染该模板:
from flask import render_template
@app.route('/hello/<name>')
def hello_name(name):
return render_template('hello.html', name=name)
如果用户访问 http://127.0.0.1:5000/hello/John
,将显示 "Hello, John!"。
7. 总结
通过本课的学习,您已经掌握了 Flask 框架的基本概念和用法,包括如何创建一个简单的 Flask 应用、定义路由和视图函数、使用模板渲染动态 HTML 页面等。Flask 的简单易用使其成为快速开发 Web 应用的理想选择。接下来,您可以进一步学习 Flask 的扩展功能,如数据库操作、表单处理和认证等。