代码解析:
python
复制
from flask import Flask
from flask import request
import services
from flask import Flask:从 Flask 框架中导入 Flask 类,用于创建 Flask 应用。
from flask import request:导入 request 对象,它允许我们在 Flask 应用中接收和处理 HTTP 请求。request 包含了所有关于请求的信息,如请求方法、参数、数据等。
import services:导入名为 services 的自定义模块。这个模块可能包含哈希加密或其他服务函数,用于处理特定的任务。
python
复制
app = Flask(__name__)
- 创建一个 Flask 应用实例
app,__name__ 是 Python 内置的变量,表示当前模块的名称。Flask 使用它来确定应用的根路径。
python
复制
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/') :定义了一个路由装饰器,表示当用户访问根路径 '/' 时,调用 hello_world() 函数。
def hello_world(): :hello_world 函数会返回字符串 'Hello World!',当用户访问根路径时,服务器会返回此字符串作为响应。
python
复制
@app.route('/my_get', methods=['GET'])
def my_get():
arg1 = request.args.get("arg1")
arg2 = request.args.get("arg2")
return f"接收到参数,分别为: arg1: {arg1} , arg2: {arg2}"
-
@app.route('/my_get', methods=['GET']) :定义一个新的路由 /my_get,并指定它只接收 GET 请求。
-
def my_get(): :my_get 函数用来处理 /my_get 路径的 GET 请求。
request.args.get("arg1") 和 request.args.get("arg2") :使用 request.args.get() 方法获取 GET 请求中的参数(arg1 和 arg2)。
- 返回响应:通过
f"接收到参数,分别为: arg1: {arg1} , arg2: {arg2}" 返回获取到的参数作为响应。
python
复制
@app.route('/my_post', methods=['POST'])
def my_post():
get_data = request.json
return f"接收到请求数据,内容为:{get_data}"
-
@app.route('/my_post', methods=['POST']) :定义一个新的路由 /my_post,并指定它只接收 POST 请求。
-
def my_post(): :my_post 函数用来处理 /my_post 路径的 POST 请求。
request.json:request.json 用于获取 POST 请求中以 JSON 格式发送的数据。
- 返回响应:通过
f"接收到请求数据,内容为:{get_data}" 返回接收到的数据作为响应。
python
复制
@app.route('/encrypt', methods=['GET'])
def encrypt():
"""
哈希函数加密
:return: 加密的字典对象
"""
data = request.args.get('data')
res = services.hash_encrypt(data)
return {
'res': res
}
-
@app.route('/encrypt', methods=['GET']) :定义一个新的路由 /encrypt,并指定它只接收 GET 请求。
-
def encrypt(): :encrypt 函数用来处理 /encrypt 路径的 GET 请求。
request.args.get('data') :获取 GET 请求中传入的参数 data,通常是待加密的数据。
services.hash_encrypt(data) :调用 services 模块中的 hash_encrypt() 函数进行哈希加密(假设 hash_encrypt 是该函数的名称,它可能会返回加密后的数据)。
- 返回响应:返回一个包含加密结果的字典对象
{'res': res},其中 res 是加密结果。
python
复制
if __name__ == '__main__':
app.run()
if __name__ == '__main__': :这段代码确保只有在直接运行这个脚本时,才会启动 Flask 应用,而不是在它被导入为模块时启动。
app.run() :启动 Flask 开发服务器,监听本地的 5000 端口,等待并处理请求。
总结:
- 这段代码实现了一个简单的 Flask 应用,包含了 3 个路由:
/、/my_get 和 /my_post,每个路由都处理不同类型的 HTTP 请求(GET 和 POST)。
/my_get 用于接收 GET 请求并返回查询参数;
/my_post 用于接收 POST 请求并返回请求的数据;
/encrypt 接收 GET 请求并对数据进行哈希加密处理。
- 通过学习这段代码,你可以理解 Flask 中如何处理 HTTP 请求和响应、如何从请求中获取参数以及如何与外部函数进行交互。