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

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.mfbz.cn/a/782789.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何选择合适的PCB表面处理工艺?

在PCB制造中应用PCB表面处理至关重要,以保护铜迹线不受氧化和环境污染物的侵蚀,这些污染物会降低性能。这些PCB表面处理可以防止水分、灰尘、化学物质和极端温度的侵入,防止PCB材料的腐蚀。它们还有助于在组装过程中有效焊接和粘合&#xff0…

240707_昇思学习打卡-Day19-基于MindSpore通过GPT实现情感分类

240707_昇思学习打卡-Day19-基于MindSpore通过GPT实现情感分类 今天基于GPT实现一个情感分类的功能,假设已经安装好了MindSpore环境。 # 该案例在 mindnlp 0.3.1 版本完成适配,如果发现案例跑不通,可以指定mindnlp版本,执行!pip…

Git 查看、新建、删除、切换分支

Git 是一个版本控制系统,软件开发者用它来跟踪应用程序的变化并进行项目协作。 分支的诞生便于开发人员在彼此独立的环境中进行开发工作。主分支(通常是 main 或 master)可以保持稳定,而新的功能或修复可以在单独的分支中进行开发…

STM32智能无人机控制系统教程

目录 引言环境准备智能无人机控制系统基础代码实现:实现智能无人机控制系统 4.1 数据采集模块 4.2 数据处理与飞行控制 4.3 通信与导航系统实现 4.4 用户界面与数据可视化应用场景:无人机应用与优化问题解决方案与优化收尾与总结 1. 引言 智能无人机控…

AI工具杂谈

AI是在帮助开发者还是取代他们? 在软件开发领域,生成式人工智能(AIGC)正在改变开发者的工作方式。无论是代码生成、错误检测还是自动化测试,AI工具正在成为开发者的得力助手。然而,这也引发了对开发者职业…

哪个牌子的护眼大路灯质量好呢?性价比高的五款护眼大路灯分享

护眼大路灯可以说是是每个有娃家庭必不可少的照明神器。但面对市场上琳琅满目的护眼落地灯品牌和型号,很多消费者在选购时都会犯难:究竟哪个牌子的护眼大路灯质量好呢?哪个性价比高呢?本文将根据市场反馈以及性价比等各方面&#…

Table 表格--分页序号自增

代码: import { Space, Table, Tag } from antd; import type { ColumnsType } from antd/es/table; import React, { useState } from react;interface DataType {key: string;name: string;age: number;address: string;tags: string[]; }const data: DataType[]…

6K star! 部署本地运行LLM的AI助手,零基础入门到精通超详细

AI套壳千千万万,你最喜欢哪一款?现在各种ChatGPT替代品层出不穷,但是大部分都是使用OpenAI的API,也就说离不开网络。 今天我们推荐的开源项目它就是要帮你100%在本地运行大模型,进而构建一个属于自己的ChatGPT&#x…

使用 Docker 部署一个文档管理系统,让宝贵文档不在丢失!

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 BookStack 是一个开源的文档管理系统,非常适合用来创建和组织文档。 通过 Docker,我们可以轻松地将 BookStack 部署到本地或服务器上。 本文将详细介绍如何使用 Docker 搭建 BookStack。 项目预览 登录页面

element-plus 的form表单组件之el-radio(单选按钮组件)

单选按钮组件适用于同一组类型的选项只能互斥选择的场景,就是支持单选。单选组件包含以下3个组件 组件名作用el-radio-group单选组组件,子元素可以是el-radio或el-radio-button,v-mode绑定单选组的响应式属性el-radio单选组件,la…

如何确保工业展厅设计既专业又吸引?三原则详解!

工业是民族发展的基石,它为我们带来了无数的便利和进步,而为了让更多人了解这个至关重要的产业,以及其背后的技术和产品,许多工业性质的企业都致力于通过互动投影、虚拟现实、全息投影等多媒体技术,来打造独具特色的工…

起底:Three.js和Cesium.js,二者异同点,好比全科和专科.

Three.js和Cesium.js是两个常用的webGL引擎,很多小伙伴容易把它们搞混淆了,今天威斯数据来详细介绍一下,他们的起源、不同点和共同点,阅读后你就发现二者就像全科医院和专科医院的关系,很好识别。 一、二者的起源 Th…

LiveNVR监控流媒体Onvif/RTSP用户手册-录像回看:录像通道、查看录像、设备录像、云端录像查、时间轴视图、录像分享

LiveNVR监控流媒体Onvif/RTSP用户手册-录像回看:录像通道、查看录像、设备录像、云端录像查、时间轴视图、录像分享 1、录像回看1.1、查看录像1.1.1、时间轴视图1.1.2、列表视图 2、如何分享时间轴录像回看?3、iframe集成示例4、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服…

RabbitMQ(集群相关部署)

RabbitMQ 集群部署 环境准备:阿里云centos8 服务器,3台服务器,分别进行安装; 下载Erlang Erlang和RabbitMQ版本对照:https://www.rabbitmq.com/which-erlang.html 创建yum库配置文件 vim /etc/yum.repos.d/rabbi…

Soong 构建系统

背景 Soong 构建系统在Android 7.0开始引入,目的是取代Make。它利用Kati GNU Make 和Ninja构建系统组件来构建Android Soong是用Go语言写的,go环境在prebuilts/go环境下,Soong在编译时,解析bp文件,转化成Ninja文件&am…

互联网留给网站建设的,也就一个门缝了,抓紧往高端进发吧。

高端定制网站具有以下价值: 独特性:高端定制网站能够根据企业的品牌形象和定位进行设计,呈现独特的风格和用户体验。这有助于提升企业的品牌形象和差异化竞争力,使企业在竞争激烈的市场中脱颖而出。用户体验:高端定制…

vue-使用Worker实现多标签页共享一个WebSocket

文章目录 前言一、SharedWorker 是什么SharedWorker 是什么SharedWorker 的使用方式SharedWorker 标识与独占 二、Demo使用三、使用SharedWorker实现WebSocket共享 前言 最近有一个需求,需要实现用户系统消息时时提醒功能。第一时间就是想用WebSocket进行长连接。但…

14-47 剑和诗人21 - 2024年如何打造AI创业公司

​​​​​ 2024 年,随着人工智能继续快速发展并融入几乎所有行业,创建一家人工智能初创公司将带来巨大的机遇。然而,在吸引资金、招聘人才、开发专有技术以及将产品推向市场方面,人工智能初创公司也面临着相当大的挑战。 让我来…

下一代 CLI 工具,使用Go语言用于构建令人惊叹的网络应用程序

大家好,今天给大家分享一个创新的命令行工具Gowebly CLI,它专注于使用Go语言来快速构建现代Web应用程序。 Gowebly CLI 是一款免费开源软件,有助于在后端使用 Go、在前端使用 htmx 和 hyperscript 以及最流行的 CSS 框架轻松构建令人惊叹的 W…

Maven Nexus3 私服搭建、配置、项目发布指南

maven nexus私服搭建 访问nexus3官方镜像库,选择需要的版本下载:Docker Nexus docker pull sonatype/nexus3:3.49.0 创建数据目录并赋权 sudo mkdir /nexus-data && sudo chown -R 200 /nexus-data 运行(数据目录选择硬盘大的卷进行挂载) docker run -d -p 808…