flask 请自定义一个年份转换器
时间: 2024-09-29 20:16:01 浏览: 22
Flask是一个轻量级的Web应用框架,它基于Python语言,允许开发者快速构建RESTful API或全栈Web应用。对于自定义一个年份转换器,Flask提供了一个名为`RequestParser`的工具,可以处理URL查询参数、请求体数据等,并将其转换成我们期望的数据类型。如果你想要定制一个将字符串解析为年份的转换器,你可以这样做:
```python
from flask import Flask, request, jsonify
from werkzeug.datastructures import MultiDict
class YearConverter:
def to_python(self, value):
try:
return int(value)
except ValueError:
raise ValueError("Invalid year format")
def to_url(self, value):
return str(value)
app = Flask(__name__)
@app.route('/parse-year', methods=['GET'])
def parse_year():
parser = request.parser
parser.add_argument('year', type=YearConverter())
args = parser.parse_args(MultiDict(request.args))
year = args['year']
# 检查年份是否有效
if not isinstance(year, int) or year < 1900 or year > 2100:
return jsonify({"error": "Invalid year"}), 400
return jsonify({"year": year}), 200
# 使用方法
if __name__ == '__main__':
app.run()
```
在这个例子中,当你发送一个包含年份参数的GET请求到`/parse-year?year=2023`这样的地址时,Flask会使用我们的`YearConverter`进行解析。如果输入不是一个有效的四位数年份,将会返回错误信息。