从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()
相关推荐
love530love9 小时前
OpenClaw Windows Companion 桌面客户端 连接 LM Studio 完整配置指南
人工智能·windows·python·openclaw
码兄科技10 小时前
实战:基于Spring Boot + UniApp的地理信息小程序开发
spring boot·后端·uni-app
程序喵大人10 小时前
【C++进阶】STL容器与迭代器 - 01 STL 容器先解决元素放在哪里
开发语言·c++·stl
cui_ruicheng11 小时前
Python从入门到实战(十六):多进程编程
开发语言·python
腾讯云云开发11 小时前
腾讯云 CloudBase 登上 WAIC:我们为 Agent 重新设计了云的生产线
后端
星栈11 小时前
从装一堆工具到看懂 Node 工程化思维:我的项目复盘记录
后端·node.js
65岁退休Coder12 小时前
LangChain v1.3.4 笔记 - 05 Agent 上下文记忆
后端
颜酱12 小时前
04 | 召回前置准备:搭好召回所需的四个数据库
前端·人工智能·后端
wdfk_prog12 小时前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
JaneConan12 小时前
鸿蒙 韶非 UI 系列:能力调用 startAbilityForResult,跳能力拿回参,鸿蒙能力路由入门
后端·harmonyos