基于Flask的 api(一)
Flask是一个基于Python开发的微型web框架
使用Flask实现简单的 api
安装
pip install flask
flask版本
import flask
print(flask.__version__)
$ python test.py
1.1.2
eg:
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'hello,world' if __name__ == "__main__": app.run()
浏览器打开http://127.0.0.1:5000/
页面输出
hello,world
说明:
Flask自带的Server默认监听端口为5000
启用了 Flask 调试 模式
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'hello,world' if __name__ == "__main__": app.run(debug=True)
修改端口
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'hello,world' if __name__ == "__main__": app.run(debug=True,port=6000)
1.GET方法
参数形式 ?key=value
from flask import Flask,request,abort app = Flask(__name__) @app.route('/') def hello(): return 'hello,world' @app.route("/testGet", methods=['GET']) def testGet(): name = request.args.get('name','') age = request.args.get('age','') return {'name':name,'age':age} if __name__ == "__main__": app.run()
postman测试
使用 path 的形式
from flask import Flask,request,abort import os app = Flask(__name__) @app.route('/') def hello(): return 'hello,world' @app.route("/testGet/<name>", methods=['GET']) def testGet(name,age=20): return {'name':name,'age':age} if __name__ == "__main__": app.run(debug=True,port=5000)
使用postman测试
from flask import Flask,request,abort import os app = Flask(__name__) @app.route('/') def hello(): return 'hello,world' @app.route("/testGet/<name>/<age>", methods=['GET']) def testGet(name,age): return {'name':name,'age':age} if __name__ == "__main__": app.run(debug=True,port=6000)
2.POST方法
(1)接收json数据
from flask import Flask,request,abort app = Flask(__name__) @app.route('/') def hello(): return 'hello,world' @app.route("/testPost", methods=['POST']) def testPost(): if not request.json or not 'text' in request.json: abort(400) text = request.json.get('text', '') return {'text':text} if __name__ == "__main__": app.run()
postman测试
(2)formdata数据,request.form
from flask import Flask,request,abort app = Flask(__name__) @app.route('/') def hello(): return 'hello,world' @app.route('/testPost', methods=['POST']) def testPost(): text = request.form['text'] print(text) return {'text':text} if __name__ == "__main__": app.run(debug=True,port=5000)
eg:文件上传并保存
from flask import Flask,request,abort import os app = Flask(__name__) @app.route('/') def hello(): return 'hello,world' @app.route('/testPost', methods=['POST']) def testPost(): text = request.form['text'] message = '没有文件' success = False; if request.files: file = request.files['file'] if file: success = True filename = file.filename file.save(os.path.join(app.root_path, 'upload', filename)) message = '文件已保存'+os.path.join(app.root_path, 'upload', filename) print(text) return {'success':success,'text':text,'message':message} if __name__ == "__main__": app.run(debug=True,port=5000)
postman测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)