基于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测试

 

posted @   慕尘  阅读(2806)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 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)
点击右上角即可分享
微信分享提示