前言
这里只是是一本flask的简单修炼手册
什么是flask
Flask 是一个轻量级的 Python Web 框架,以其简洁、灵活和易扩展的特性受到开发者青睐。它提供了 Web 开发的核心功能,同时允许开发者根据需求自由选择扩展库。本手册将系统介绍 Flask 的核心概念和基本使用方法。
主要内容
1. 安装与基础设置
1 2 3 4 5 6 7 8 9 10 11 12 13
| pip install flask
from flask import Flask app = Flask(__name__)
@app.route('/') def hello_world(): return 'Hello, World!'
if __name__ == '__main__': app.run(debug=True)
|
2. 路由系统
- 基本路由:使用
@app.route() 装饰器定义 URL 规则
- 动态路由:支持变量规则
<variable_name>
- HTTP 方法:指定支持的请求方法(GET、POST 等)
1 2 3 4 5 6 7 8 9 10
| @app.route('/user/<username>') def show_user_profile(username): return f'User {username}'
@app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': return do_login() else: return show_login_form()
|
3. 请求处理
- 请求对象:通过
request 对象访问请求数据
- 表单处理:处理 POST 请求中的表单数据
- 文件上传:支持文件上传功能
1 2 3 4 5 6 7
| from flask import request
@app.route('/submit', methods=['POST']) def submit(): name = request.form['name'] file = request.files['file'] return f'Received {name} and file'
|
4. 响应处理
- 返回类型:支持字符串、模板、JSON 等多种响应格式
- 重定向:使用
redirect() 函数
- 错误处理:通过
abort() 返回错误状态码
1 2 3 4 5 6 7 8 9
| from flask import render_template, jsonify, redirect
@app.route('/data') def get_data(): return jsonify({'key': 'value'})
@app.route('/old') def old_url(): return redirect('/new')
|
5. 模板引擎(Jinja2)
- 模板渲染:使用
render_template() 函数
- 模板继承:支持模板继承和块功能
- 控制结构:包含条件判断、循环等逻辑
1 2 3
| @app.route('/hello/<name>') def hello(name): return render_template('hello.html', name=name)
|
6. 会话管理
- Cookie 操作:设置和读取客户端 Cookie
- Session:服务端会话管理
1 2 3 4 5 6 7 8 9 10
| from flask import session
@app.route('/set') def set_session(): session['username'] = 'admin' return 'Session set'
@app.route('/get') def get_session(): return session.get('username', 'Not set')
|
7. 扩展库生态
- Flask-SQLAlchemy:数据库 ORM 支持
- Flask-WTF:表单验证和 CSRF 保护
- Flask-Login:用户认证管理
- Flask-RESTful:REST API 开发
8. 配置管理
- 配置方式:支持多种配置加载方式
- 环境变量:通过环境变量区分开发/生产环境
1 2
| app.config['SECRET_KEY'] = 'your-secret-key' app.config['DEBUG'] = True
|
9. 错误处理
1 2 3
| @app.errorhandler(404) def page_not_found(error): return render_template('404.html'), 404
|
10. 部署运行
1 2 3 4 5
| app.run(host='0.0.0.0', port=5000, debug=True)
|
总结
Flask 作为一个微框架,提供了 Web 开发的核心功能,同时保持了高度的灵活性。其简洁的 API 设计使得初学者能够快速上手,而丰富的扩展生态又能满足复杂项目的需求。通过本手册介绍的核心功能,开发者可以构建从简单静态页面到复杂 Web 应用程序的各种项目。
核心优势:
- 轻量级,学习曲线平缓
- 文档完善,社区活跃
- 扩展性强,可灵活组合功能
- 适合中小型项目快速开发
版权声明: 此文章版权归曦曦所有,如有转载,请注明来自原作者