# -*- coding:utf-8 -*- # 声明代码编码为UTF-8,确保中英文都能正常显示
# 导入所需的库
from flask import Flask, request, jsonify # 导入Flask框架,request对象和jsonify函数
from werkzeug.utils import redirect # 导入重定向工具
app = Flask(__name__) # 创建一个Flask应用实例,使用当前文件名作为模块名
from flask_cors import CORS, cross_origin # 从flask_cors库中导入CORS和cross_origin
cors = CORS(app) # 初始化CORS,允许跨域请求
# 设置JSON的编码方式,支持中文显示
app.config['JSON_AS_ASCII'] = False
# 定义根路由,返回"hello world"
@app.route("/")
def hello_world():
return "hello world"
# 定义"/hey/<username>/"路由,接收一个参数username,返回"hey [username]"
@app.route("/hey/<username>/")
def hey_yingyong(username):
return "hey %s" % username
# 定义"/my_number/<int:number>/"路由,接收一个整数字段number,返回"my [number*2]"
@app.route("/my_number/<int:number>/")
def my_number(number):
return "my %s" % (number+number)
# 定义"/my_float/<float:number>/"路由,接收一个浮点数字段number,返回"my [number*2]"
@app.route("/my_float/<float:number>/")
def my_float(number): return "my %s" % (number+number)
# 定义"/baidu/"路由,重定向到百度首页
@app.route("/baidu/")
def baidu():
return redirect("http://www.baidu.com")
# 定义"/json"路由,返回一个JSON格式的字典列表
@app.route("/json")
def json():
dict = [{"name":'张三'}, {"gender":'男'}]
return jsonify(dict)
# 定义"/p"路由,只接受GET请求,返回"hello_world"字符串
@app.route("/p", methods=["GET"])
def he():
return "hello_world"
# 定义"/test/my/first"路由,处理POST请求,对请求中的JSON数据进行处理并返回结果
@app.route("/test/my/first", methods=["POST"])
def first_post():
try:
my_json = request.get_json() # 从请求中获取JSON数据
print(my_json) # 打印JSON数据内容,仅在调试时使用,生产环境中应删除此行代码
get_name = my_json.get("name") # 从JSON中获取name字段的值,如果不存在则返回None
get_age = my_json.get("age") # 从JSON中获取age字段的值,如果不存在则返回None
if not all([get_name,get_age]): # 如果name和age字段都不存在,返回错误信息"缺少参数"
return jsonify(msg="缺少参数")
get_age += 10 # 将age字段的值增加10岁
return jsonify(name=get_name, age=get_age) # 返回处理后的JSON数据,包括name和age字段的值
except Exception as e: # 如果在处理过程中出现任何异常,捕获并打印异常信息,然后返回错误信息"出错了哦,请查看是否正确访问"
print(e) # 打印异常信息,仅在调试时使用,生产环境中应删除此行代码
return jsonify(msg="出错了哦,请查看是否正确访问") # 返回错误信息"出错了哦,请查看是否正确访问"
发表回复