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 操作示例
- Python
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 开发者的理想选择。