如何快速掌握Flask框架的核心知识点?

摘要:1. 简介与特点 微框架: 核心简单,高度可扩展,不强制使用特定工具或库。 优点: 学习曲线平缓: 易于上手,适合小型项目和快速开发。 灵活性高:&amp
1.简介与特点 微框架:核心简单,高度可扩展,不强制使用特定工具或库。 优点: 学习曲线平缓:易于上手,适合小型项目和快速开发。 灵活性高:开发者可以自由选择组件和技术栈。 社区活跃:拥有丰富的第三方扩展和活跃的社区支持。 适用于API开发:轻量级使其非常适合构建 RESTful API。 缺点: 功能较少:核心功能仅包含请求分发和模板渲染,其他需自行集成。 不适合大型项目?:对于非常大型、复杂且有明确规范的项目,可能需要更多约定和内置功能的框架(如 Django)。 2.基本应用结构 一个最简单的 Flask 应用: from flask import Flask # 1. 创建 Flask 应用实例 app = Flask(__name__) # 2. 路由定义 (URL 映射到视图函数) @app.route('/') def hello_world(): return 'Hello, World!' # 3. 运行应用 if __name__ == '__main__': # 开启调试模式,代码修改后自动重启,并提供交互式调试器 app.run(debug=True) 3.核心概念 Flask 实例 (app = Flask(__name__)) Flask类是所有 Flask 应用的入口。 __name__参数是当前模块的名称,Flask 用它来定位资源(如模板、静态文件)。 路由 (Routing) 使用@app.route(rule, options)装饰器将 URL 路径与视图函数关联起来。 rule: URL 规则字符串,支持变量。 URL 变量:<variable_name>用于捕获 URL 中的值。 @app.route('/user/<username>') @app.route('/post/<int:post_id>')(指定类型,如string,int,float,path,uuid) HTTP 方法限制:methods=['GET', 'POST'] @app.route('/submit', methods=['POST']) URL 反转:url_for()函数根据视图函数名和参数生成 URL。 url_for('hello_world')->/ url_for('get_user', username='alice')->/user/alice 用于避免硬编码 URL,方便修改和维护。 请求上下文 (Request Context) 在每次请求到达时创建,包含请求相关的所有信息。 request对象:包含客户端发送的所有数据。 request.method: 请求方法 (GET, POST等) request.args: GET 请求的查询参数 (ImmutableMultiDict) request.form: POST 请求的表单数据 (ImmutableMultiDict) request.json: POST 请求的 JSON 数据 (如果Content-Type是application/json) request.headers: 请求头 request.cookies: 客户端的 Cookie request.files: 上传的文件 request.path,request.url,request.base_url等 session对象:用户会话信息,用于在请求之间存储数据。 需要设置app.secret_key来加密会话数据。 session['user_id'] = 1 应用上下文 (Application Context) 在应用启动时创建,包含应用相关的配置信息。 current_app对象:代理当前的 Flask 应用实例。 响应 (Response) 视图函数可以返回: 字符串:Flask 会自动将其包装为 Response 对象,Content-Type为text/html。 元组:(response, status_code, headers) return 'Error!', 400 return 'Custom Header', 200, {'X-My-Header': 'Hello'} Response对象:make_response()函数创建。 jsonify():将 Python 字典或列表转换为 JSON 响应,并自动设置Content-Type: application/json。
阅读全文