从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()
相关推荐
爱勇宝4 分钟前
用了一个月 WorkBuddy,聊聊我的真实感受
前端·后端·程序员
qq_3449205611 分钟前
Qt事件过滤器
开发语言·c++·qt
执明wa28 分钟前
Android RecyclerView 多类型, 多种 Item
android·xml·开发语言·设计模式·android studio
行百里er33 分钟前
Spring Insight 里如何把 Span 画成瀑布时间线
spring boot·后端·监控
卷无止境34 分钟前
从终端里长出来的 IDE,oh-my-pi 到底是个什么东西
人工智能·后端
程序员yu39 分钟前
数智码力:Python作用域完全梳理,全局变量局部变量不再混乱
开发语言·python·学习
万物智能1 小时前
PWM散热风扇设置—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
前端·后端·算法
北城笑笑1 小时前
Python Dev 02 & Tkinter webbrowser 实战,手写第一个 Python 桌面 GUI 小工具
人工智能·python·pip
CTA量化套保1 小时前
搜索“2026年交易工具推荐”时,先问清它要解决什么问题
人工智能·python