编辑
2025-03-31
服务器
00

目录

路由
addurlrule
实现Methodview
使用@app.route

路由

add_url_rule

实现Methodview

api.py

python
class FileApi(MethodView): """ 后端接口部分 RESTful API风格 """ def __init__(self): super(FileApi, self).__init__() def get(self, fid): """ 查询数据 :param fid: 文件id :return: json """ try: if not fid: files: [File] = File.query.all() results = [ { 'fid': file.fid, 'name': file.name, 'timestamp': file.timestamp, 'type': file.type, 'origin': file.origin, 'width': file.width, 'height': file.height, 'url': file.url } for file in files ] else: file = File.query.get(fid) results = { 'fid': file.fid, 'name': file.name, 'timestamp': file.timestamp, 'type': file.type, 'origin': file.origin, 'width': file.width, 'height': file.height, 'url': file.url } return { 'status': 'success', 'message': '数据查询成功', 'results': results } except Exception as e: return { 'status': 'error', 'message': '数据查询出现异常', 'info': str(e) } def delete(self, fid): """ 删除操作 :param fid: 文件id :return: json """ try: file: File = File.query.get(fid) file.fp = 1 # db.session.delete(file) db.session.commit() return { 'status': 'success', 'message': '数据删除成功', } except Exception as e: return { 'status': 'error', 'message': '数据删除出现异常', 'info': str(e) } def post(self): # 添加数据

app.py

python
file_view = FileApi.as_view('file_api') app.add_url_rule('/files/', defaults={'fid': None}, view_func=file_view, methods=['GET']) # 查询 app.add_url_rule('/files', view_func=file_view, methods=['POST']) # 添加 app.add_url_rule('/files/<int:fid>', view_func=file_view, methods=['GET', 'DELETE']) # 查询,删除

使用@app.route

python
@app.route('/getPic',methods=['GET', 'POST']) def get_image(): return send_file('./current.jpg', mimetype='image/gif')