如果你正在寻找一种简单而高效的方法来创建 Web 应用或 API,那么 Flask 是一个很好的选择。作为一个轻量级的 Python Web 框架,Flask 提供了极大的灵活性和扩展性,让开发者能够自由地设计和实现项目。本文将带你了解 Flask 的基本使用方法,并创建一个简单的 Web 应用。


1. 什么是 Flask?

Flask 是一个由 Python 编写的轻量级 Web 框架,设计哲学是“少即是多”。它提供了基本的 Web 应用开发工具,同时允许开发者根据需要添加扩展。

Flask 的核心特点


2. 安装 Flask

在开始之前,确保你的系统已经安装了 Python(建议 Python 3.7 或更高版本)。然后,通过 pip 安装 Flask:

pip install flask

3. 创建第一个 Flask 应用

接下来,我们将创建一个简单的 Flask 应用,响应用户访问并返回一段欢迎信息。

项目结构

flask_app/
    app.py

代码实现

app.py 中编写以下代码:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Flask! Welcome to your first web app."

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

解释代码

运行应用

在终端中进入项目目录,运行以下命令:

python app.py

访问浏览器中的 http://127.0.0.1:5000/,你将看到 “Hello, Flask! Welcome to your first web app.” 的内容。


4. 使用 URL 路由

Flask 支持定义多个路由,每个路由对应一个处理函数。

示例代码

@app.route('/hello/<name>')
def hello(name):
    return f"Hello, {name}!"

5. 模板渲染

动态网页是 Web 应用的重要部分。Flask 使用 Jinja2 模板引擎来生成 HTML 页面。

项目结构

flask_app/
    app.py
    templates/
        index.html

模板代码

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Welcome</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>

代码实现

app.py 中:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/hello/<name>')
def hello(name):
    return render_template('index.html', name=name)

访问 /hello/John,页面将显示 “Hello, John!”。


6. 接收用户输入

通过 Flask 的 request 模块,可以轻松获取用户提交的数据。

示例:简单表单

templates/form.html 中:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Form Example</title>
</head>
<body>
    <form action="/submit" method="post">
        <label for="name">Your Name:</label>
        <input type="text" id="name" name="name">
        <button type="submit">Submit</button>
    </form>
</body>
</html>

app.py 中:

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/form')
def form():
    return render_template('form.html')

@app.route('/submit', methods=['POST'])
def submit():
    name = request.form['name']
    return f"Hello, {name}! Your form has been submitted."

访问 /form,提交表单后会显示提交结果。


7. JSON API 示例

Flask 也非常适合用来构建 API。下面是一个简单的 JSON API 示例:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api/data')
def api_data():
    return jsonify({
        "message": "Hello, Flask API!",
        "status": "success"
    })

访问 /api/data,会返回以下 JSON 响应:

{
    "message": "Hello, Flask API!",
    "status": "success"
}

8. 部署 Flask 应用

开发完成后,可以将 Flask 应用部署到生产环境中。常用的部署方式包括:


总结

通过本文,你已经学会了 Flask 的基础用法,包括创建路由、使用模板引擎、处理用户输入以及构建 API。Flask 的简单性和灵活性使其成为许多开发者的首选框架。你可以基于这些基础知识,进一步探索 Flask 的扩展功能,如数据库集成(SQLAlchemy)、用户认证(Flask-Login)等,为自己的项目注入更多可能性。