flask、fastapi在服务器制作接口携参访问返回参数

news2024/11/16 7:35:32

flask创建接口:

一、安装python

官网下载Download Python | Python.org

二、安装flask

在选择的文件夹路径cmd调用bash安装

pip install Flask

三、创建flask应用

# app.py  
from flask import Flask, request, jsonify  
  
app = Flask(__name__)  
  
@app.route('/echo', methods=['GET', 'POST'])  
def echo():  
    # 获取GET或POST请求中的参数  
    params = request.args if request.method == 'GET' else request.json  
      
    # 将参数转换为字典,并返回  
    return jsonify(params)  
  
if __name__ == '__main__':  
    app.run(host='0.0.0.0', port=5000, debug=True)

或者以下文件

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/echo', methods=['POST'])
def echo():
    data = request.form
    return jsonify(data)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, debug=True)

  四、运行flask应用

python app.py

五、测试接口

http://云服务器IP:5000/echo?name=John&age=30

http://云服务器IP:5000/echo?name=John&age=30

调用成功后会返回参数并在监控台打印对应访问信息
 

fastapi uvicorn创建

一、安装fastapi uvicorn

选择文件夹cmd打开bash

pip install fastapi uvicorn

 二、创建接口文件

from fastapi import FastAPI  
  
app = FastAPI()  
  
@app.get("/echo/")  
async def echo_params(q: str = None, another_param: int = None):  
    # 这里q是查询参数,another_param是另一个查询参数(在这个例子中我们假设它是整数)  
    # 注意:查询参数是可选的,所以它们都有默认值(这里q默认为None,another_param默认为None,但类型注解指定了int,所以实际中你可能需要处理转换错误或使用Union[int, None])  
    # 为了简化示例,我们假设another_param总是整数,如果不传递或传递的不是整数,将引发错误  
    return {"q": q, "another_param": another_param}  
  
# 注意:在真实应用中,如果查询参数可能不总是存在或可能不是预期的类型,你应该处理这些情况  
# 比如,使用Pydantic的Query或其他方法来指定类型、默认值、验证等  
  
# 如果要处理更复杂的查询参数,比如列表或字典,你可能需要使用Pydantic模型或Query的额外参数  
# 这里只展示了基本的用法

在这个示例中,我们定义了一个/echo/接口,它接受两个查询参数:qanother_paramq是一个字符串,而another_param被假定为一个整数(但在实际使用中,如果客户端没有传递another_param或传递的不是整数,这里可能会引发错误,因此你可能需要添加额外的错误处理逻辑)。

三、运行接口

uvicorn main:app --reload

四、 测试接口

http://127.0.0.1:8000/echo/?q=hello 将返回 {"q": "hello", "another_param": null}(因为another_param没有提供)
http://127.0.0.1:8000/echo/?q=hello&another_param=123 将返回 {"q": "hello", "another_param": 123}

调用成功后会返回参数并在监控台打印对应访问信息 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1906277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【国产开源可视化引擎Meta2d.js】标尺

画布顶部和左边的坐标标尺 在线体验: 乐吾乐2D可视化 示例: // 设置默认缺省标尺属性 meta2d.store.options.rule true; // 开启 meta2d.store.options.ruleColor eeeeee; // 标尺颜色, 可缺省// 设置单个图纸的标尺属性 //方式1 meta2d.…

Kafka(二)Producer第一篇

一,Client开发 生产逻辑需要具备以下几个 步骤: (1)配置生产者客户端参数及创建相应的生产者实例。 (2)构建待发送的消息。 (3)发送消息。 (4)关闭生产者实例…

材料科学SCI期刊,IF=6+,2个月录用,审稿速度非常快

一、期刊名称 Journal of Materials Research and Technology 二、期刊简介概况 期刊类型:SCI 学科领域:材料科学 影响因子:6.2 中科院分区:2区 三、期刊简介 《材料研究与技术杂志》为发表与材料加工、性能和性能相关的理论…

蚓链实践告诉你“企业确保达成数字化营销效果的方法”

在如今这个数字化盛行的时代,企业想在激烈的市场竞争里崭露头角,确保数字营销效果那可是至关重要!今天就来给大家聊聊实现这一目标的基本条件,来自蚓链数字化营销系统的广大用户体验总结。 一、精准的目标定位 企业一定要清楚地知…

Java 操作 Redis客户端

目录 1.渐进式遍历 2.Java 操作 Redis 客户端 2.1 引入依赖 2.2 配置端口转发 2.3 连接Redis Server 3.基础操作 3.1 set 和 get 3.2 exists 和 del 3.3 keys 3.4 expire 和 ttl 3.5 type 4.字符串操作 4.1 mget 和 mset 4.2 append 4.3 getrange 和 setrange 4.4 incr 和 d…

如何大幅减少 Vue.js 中的包大小和加载时间,提升用户体验!

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 你知道吗,根据Google 的一项研究,如果网站加载时间超过 3 秒,53% 的移动用户会离开该网站? 性能优化是一个经常讨论的话题,但很多开发人员并不关心提高应用的速度。 在前端开发中,优化包大小和加载时间对于提升用户体…

数据结构--二叉树相关题2(OJ)

1.比较对称二叉树(镜像二叉树) 二叉树相关题1中第二题的变形题。先去看1哦! 左子树和右子树比较 bool _isSymmetric(struct TreeNode* p, struct TreeNode* q) {if (p NULL && q NULL)return true;//如果两个都为空则是相等的if …

【Arduino】XIAOFEIYU(TM)实验ESP32使用霍尔传感器(图文)

霍尔传感器是一种可以测量磁力变化的传感器,今天XIAOFEIYU就来测试一下ESP32使用霍尔传感器。 霍尔传感器:正负极加一个数据接口。 将传感器与ESP32进行电路连接: 编写程序: #define SIGNAL_PIN 33int value 0; // 存储传感…

【Spring Boot】关系映射开发(二):一对多映射

《JPA 从入门到精通》系列包含以下文章: Java 持久层 API:JPA认识 JPA 的接口JPA 的查询方式基于 JPA 开发的文章管理系统(CRUD)关系映射开发(一):一对一映射关系映射开发(二&#…

如何在Spring Boot中实现分布式任务调度?

文章目录 引言一、分布式任务调度的基本原理二、Spring Boot与分布式任务调度1. 使用Quartz实现分布式任务调度2. 使用Elastic-Job实现分布式任务调度 三、常见问题与解决方案结论 🎉欢迎来到SpringBoot框架学习专栏~ ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹…

食品行业制氮机的应用范围解析

在食品行业中,保障食品的品质和安全性是每一个企业所追求的核心目标。制氮机作为一种重要的辅助设备,其在食品行业中的作用不容忽视。 一、保障食品质量与安全性 制氮机通过物理方法从空气中分离出高纯度氮气,为食品提供了一个无氧环境。这一…

C++模板元编程(二)——完美转发

完美转发指的是函数模板可以将自己的参数“完美”地转发给内部调用的其它函数。所谓完美,即不仅能准确地转发参数的值,还能保证被转发参数的左、右值属性不变。 文章目录 场景旧的方法新的方法内部实现参考文献 场景 思考下面的代码: templ…

哈喽GPT-4o,程序员如何通过GPT-4o提高工作效率

目录 一、编写代码Prompt:请用Java语言编写一个二分查找的样例 二、修正代码错误、代码优化Prompt:我们上传一张华为OD算法题的题目描述,再给它我的Java解题代码,问问它有什么问题? 三、解读代码功能、代码翻译Prompt&…

Qt 网络编程 网络信息获取操作

学习目标:网络信息获取操作 前置环境 运行环境:qt creator 4.12 学习内容 一、Qt 网络编程基础 Qt 直接提供了网络编程模块,包括基于 TCP/IP 的客户端和服务器相关类,如 QTcpSocket/QTcpServer 和 QUdpSocket,以及实现 HTTP、FTP 等协议的高级类,如 QNetworkRe…

flask缓存、信号的使用

【 一 】flask-ache ​ 它为 Flask 应用程序提供了缓存支持。缓存是 Web 应用程序中非常常见的做法,用于存储频繁访问但不太可能经常更改的数据,以减少对数据库或其他慢速存储系统的访问,从而提高应用程序的性能和响应速度。 ​ Flask-Cach…

程序员必知的 89 个操作系统核心概念

1. 操作系统(Operating System,OS):是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系…

Stable Diffusion 【模型推荐】没有最强,只有更强!高清画质!电影光效版SD1.5人像摄影大模型《他和她 2》

今天带来了一款SD1.5大模型——《他和她 2》电影光效版SD1.5人像摄影大模型。该模型经过家叔马丁Mr_M大佬的优化升级后,把SD1.5的影像光效推上了全新的高度!根据大佬的描述,该模型具有更强大的细节表现,更细腻的表面肌理&#xff…

揭秘SmartEDA:电路仿真软件如何贯穿课前课中课后,助力电子学习新纪元!

在电子设计与自动化的学习道路上,一款强大的电路仿真软件往往能为学生们带来事半功倍的效果。今天,我们就来深入探讨一下SmartEDA这款电路仿真软件在课前、课中、课后的全方位应用,看看它如何助力我们的电子学习步入新纪元! 1、课…

水果商城系统 SpringBoot+Vue

1、技术栈 技术栈:SpringBootVueMybatis等使用环境:Windows10 谷歌浏览器开发环境:jdk1.8 Maven mysql Idea 数据库仅供学习参考 【已经答辩过的毕业设计】 项目源码地址 2、功能划分 3、效果演示

下载安装JavaFX及解决报错:缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序|Eclipse

目录 1.下载并解压 2.Eclipse配置 3.报错问题 解决方法1:将javaSE更改到9以下 解决方法2: 使用module-info.java配置解决 1.下载并解压 JavaFX下载地址:JavaFX - Gluon 选择合适自己电脑配置的sdk版本下载 打不开网页的参考这个博客&…