Python Flask 全流程全栈项目实战
Python Flask介绍
Flask 是一个轻量级的 Python web 应用框架,它由 Armin Ronacher 开发。它主要用于快速开发 Web 应用程序和 API。Flask 是一个简单、灵活且易于扩展的框架,特别适合小型到中型的应用程序开发。
以下是 Flask 的一些主要特点和优势:
- 轻量级和简单: Flask 设计简洁,核心功能不依赖外部库,基于 Werkzeug WSGI 工具包和 Jinja2 模板引擎实现。
- 易于上手: Flask 的 API 设计直观,学习曲线平缓,可以很快上手并开始构建应用。
- 灵活性: Flask 鼓励开发者使用自己喜欢的库和工具,没有强加的项目布局或第三方库的依赖。
- 可扩展性: Flask 允许通过插件和扩展来添加功能,从而根据项目需求灵活地扩展应用功能。
- 集成度高: Flask 支持许多常用的扩展,如处理表单数据、验证用户会话、处理数据库等。
- 模板引擎: Flask 使用 Jinja2 模板引擎,支持模板继承和宏等功能,用于生成动态 HTML 内容。
- RESTful 请求处理: Flask 提供了轻松构建 RESTful API 的能力,支持 GET、POST、PUT、DELETE 等 HTTP 方法。
- 适用于测试: Flask 提供了测试客户端,可以方便地编写和运行测试用例,确保应用程序的可靠性。
一个简单的 Flask 应用程序通常由一个 Python 脚本构成,它定义了路由、视图函数和应用配置。
代码语言:python代码运行次数:0复制from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
Python Flask 全流程全栈项目实战 - Flask 实现 Cookie
Flask 是一个用 Python 编写的轻量级 Web 应用框架。在 Flask 中实现 Cookie 的设置、读取和删除是一个相对简单的过程。以下是如何使用 Flask 来处理 Cookie 的基本步骤:
设置 Cookie
在 Flask 中,可以使用 set_cookie()
方法来设置响应中的 Cookie。这个方法可以在返回的响应对象上调用。
from flask import make_response
@app.route('/set_cookie')
def set_cookie():
response = make_response('Cookie has been set')
response.set_cookie('cookie_name', 'cookie_value')
return response
读取 Cookie
要读取 Cookie,可以使用 request
对象的 cookies
属性。这个属性包含了一个字典,其中包含了客户端发送的所有 Cookie。
from flask import request, abort
@app.route('/get_cookie')
def get_cookie():
if 'cookie_name' in request.cookies:
cookie_value = request.cookies['cookie_name']
return f'The value of the cookie is {cookie_value}'
else:
abort(404, description='Cookie not found')
修改 Cookie
修改 Cookie 通常意味着设置一个新的值。在 Flask 中,你可以像设置一个新的 Cookie 那样来修改它。
代码语言:python代码运行次数:0复制@app.route('/modify_cookie')
def modify_cookie():
response = make_response('Cookie has been modified')
response.set_cookie('cookie_name', 'new_cookie_value')
return response
删除 Cookie
要删除 Cookie,可以设置其过期时间为一个过去的时间点。
代码语言:python代码运行次数:0复制from datetime import datetime, timedelta
@app.route('/delete_cookie')
def delete_cookie():
response = make_response('Cookie has been deleted')
response.set_cookie('cookie_name', expires=datetime.utcnow() - timedelta(days=365))
return response
注意事项
- Cookie 是客户端存储的,这意味着它们可以被用户查看或修改。因此,不要将敏感信息存储在 Cookie 中。
- 使用 HTTPS 可以防止中间人攻击读取传输过程中的 Cookie。
- Flask 默认不使用签名或加密来设置 Cookie。为了提高安全性,可以使用 Flask 的
session
对象来存储敏感信息,它默认使用服务器端存储,并提供签名。