Skip to main content

Flask 基础用法

什么是 Flask?

Flask 是一个轻量级的 Python Web 框架,适用于构建 API 和 Web 应用。

info

Flask 具有模块化和可扩展的特点,适用于快速开发和微服务架构。

安装 Flask

pip install flask

创建一个 Flask 应用

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
return "Hello, Flask!"

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

运行上面的代码后,访问 http://127.0.0.1:5000/ 即可看到 Hello, Flask!

Flask 项目结构

my_flask_app/
│── app.py # Flask 应用主文件
│── templates/ # HTML 模板
│── static/ # 静态文件 (CSS, JS, Images)
│── requirements.txt # 依赖文件
│── venv/ # 虚拟环境

路由管理

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

CRUD 操作示例

from flask import Flask, request, jsonify

app = Flask(__name__)

# 模拟数据库
data = []

@app.route('/items', methods=['GET'])
def get_items():
return jsonify(data)

@app.route('/items', methods=['POST'])
def create_item():
item = request.json
data.append(item)
return jsonify(item), 201

@app.route('/items/<int:index>', methods=['PUT'])
def update_item(index):
if index < len(data):
data[index] = request.json
return jsonify(data[index])
return "Not Found", 404

@app.route('/items/<int:index>', methods=['DELETE'])
def delete_item(index):
if index < len(data):
item = data.pop(index)
return jsonify(item)
return "Not Found", 404

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

模板渲染示例(Jinja2)

from flask import render_template

@app.route('/welcome')
def welcome():
return render_template('welcome.html', name='Flask')

templates/welcome.html:

<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>

使用 Flask 和 SQLAlchemy 进行数据库操作

from flask_sqlalchemy import SQLAlchemy

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'
db = SQLAlchemy(app)

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)

@app.route('/users', methods=['POST'])
def add_user():
new_user = User(name=request.json['name'])
db.session.add(new_user)
db.session.commit()
return jsonify(new_user.name), 201

结论

Flask 适用于轻量级 Web 开发,其易学易用的特性使其成为 Python 开发者的理想选择。

更多 Flask 资源