从0开始python学习-53.python中flask创建简单接口

目录

[1. 创建一个简单的请求,没有写方法时默认为get](#1. 创建一个简单的请求,没有写方法时默认为get)

[2. 创建一个get请求](#2. 创建一个get请求)

[3. 创建一个post请求,默认可以使用params和表单传参](#3. 创建一个post请求,默认可以使用params和表单传参)

[4. 带有参数的post请求](#4. 带有参数的post请求)


1. 创建一个简单的请求,没有写方法时默认为get

python 复制代码
from flask import Flask, request

# 初始化一个flask的对象
app = Flask(__name__)

@app.route("/")
def a():
    return "简单接口"  # 注意一定要有返回

if __name__ == '__main__':
    app.run()

2. 创建一个get请求

python 复制代码
from flask import Flask, request

# 初始化一个flask的对象
app = Flask(__name__)

@app.route("/get",methods=['get'])
def get():
    name = request.values.get('name')
    age = request.values.get('age')
    if name is None or name == '':
        return '姓名必填'
    elif age is None or age == '':
        return '年龄必填'
    else:
        return {'name为:':name,'age为:':age}

if __name__ == '__main__':
    app.run()

3. 创建一个post请求,默认可以使用params和表单传参

python 复制代码
from flask import Flask, request

# 初始化一个flask的对象
app = Flask(__name__)

@app.route("/post",methods=['post'])
def post():
    name = request.values.get('name')
    age = request.values.get('age')
    if name is None or name == '':
        return '姓名必填'
    elif age is None or age == '':
        return '年龄必填'
    else:
        return {'name为:':name,'age为:':age}

if __name__ == '__main__':
    app.run()

4. 带有参数的post请求

python 复制代码
import time

from flask import Flask, request, jsonify

# 初始化一个flask的对象
app = Flask(__name__)

# form参数的post接口
@app.route("/post_form",methods=['post'])
def post_form():
    name = request.form.get('name')
    age = request.form.get('age')
    if name is None or name == '':
        return '姓名必填'
    elif age is None or age == '':
        return '年龄必填'
    else:
        return {'name为:':name,'age为:':age}

# json参数的post接口
@app.route("/post_json",methods=['post'])
def post_json():
    data = request.json

    if not all(key in data for key in ['name', 'age']):
        return jsonify({'error': '姓名和年龄是必填项'})

    return jsonify(data)

# 文件上传的post接口
@app.route("/post_file",methods=['post'])
def post_file():
    # 获取需要上传的文件
    file = request.files.get('files')
    # 获取文件名
    filename = file.filename
    # 上传文件保存路径和格式(保证文件格式正常,使用切片的方式分段获取)
    with open("D:\\"+filename.split(".")[0]+"_"+str(int(time.time()))+"."+filename.split(".")[1],"wb") as f:
        f.write(file.read())

    return filename +'上传成功'


if __name__ == '__main__':
    app.run()
相关推荐
你的人类朋友7 小时前
说说签名与验签
后端
databook7 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室7 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三9 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试
canonical_entropy11 小时前
AI时代,我们还需要低代码吗?—— 一场关于模型、演化与软件未来的深度问答
后端·低代码·aigc
颜如玉11 小时前
HikariCP:Dead code elimination优化
后端·性能优化·源码
考虑考虑12 小时前
Jpa使用union all
java·spring boot·后端
用户25191624271112 小时前
Python之语言特点
python
bobz96513 小时前
virtio vs vfio
后端
刘立军13 小时前
使用pyHugeGraph查询HugeGraph图数据
python·graphql