HTTP查询参数示例(XMLHttpRequest查询参数)(带查询参数的HTTP接口示例——以python flask接口为例)flask查询接口

文章目录

  • HTTP查询参数请求示例
    • 接口文档——获取城市列表
    • 代码示例
    • 效果
  • 带查询参数的HTTP接口示例——以python flask接口为例
    • app.py
    • README.md
    • 运行应用
    • API示例
    • 客户端示例
      • 关键实现说明:
      • 运行方法:

HTTP查询参数请求示例

接口文档——获取城市列表

在这里插入图片描述

代码示例

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><!-- 确保IE浏览器使用最新的渲染引擎 --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 设置viewport以确保页面在移动设备上正确显示 --><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>城市列表查询</title><style>body {font-family: Arial, sans-serif;padding: 20px;max-width: 600px;margin: 0 auto;}h2 {color: #333;}.city-p {line-height: 1.8;background-color: #f5f5f5;padding: 15px;border-radius: 5px;}</style>
</head><body><h2>城市列表查询</h2><p class="city-p"></p><script>// 目标:使用XHR携带查询参数,展示某个省下属的城市列表// 1. 创建XMLHttpRequest对象const xhr = new XMLHttpRequest()// 2. 配置请求方法和URL(携带查询参数pname=辽宁省)xhr.open('GET','http://hmajax.itheima.net/api/city?pname=辽宁省')// 3. 监听loadend事件,接收响应结果xhr.addEventListener('loadend',()=>{// 打印原始响应数据console.log(xhr.response)// 将响应数据从JSON字符串解析为JavaScript对象const data = JSON.parse(xhr.response)// 打印解析后的数据对象console.log(data)// 将城市列表数据渲染到页面,使用<br>标签分隔每个城市document.querySelector('.city-p').innerHTML = data.list.join('<br>')})// 4. 发起请求xhr.send()</script>
</body></html>

效果

在这里插入图片描述

带查询参数的HTTP接口示例——以python flask接口为例

在Flask中实现带查询参数的HTTP接口非常简单。以下是对应的Flask后端实现代码:

app.py

from flask import Flask, request, jsonify
from flask_cors import CORSapp = Flask(__name__)
# 启用CORS,允许跨域请求
CORS(app)# 省份及其城市数据
province_cities = {"辽宁省": ["沈阳", "大连", "鞍山", "抚顺", "本溪", "丹东", "锦州", "营口", "阜新", "辽阳", "盘锦", "铁岭", "朝阳", "葫芦岛"],"吉林省": ["长春", "吉林", "四平", "辽源", "通化", "白山", "松原", "白城", "延边"],"黑龙江省": ["哈尔滨", "齐齐哈尔", "牡丹江", "佳木斯", "大庆", "绥化", "鹤岗", "鸡西", "黑河", "双鸭山", "伊春", "七台河", "大兴安岭"],"河北省": ["石家庄", "唐山", "秦皇岛", "邯郸", "邢台", "保定", "张家口", "承德", "沧州", "廊坊", "衡水"],"山西省": ["太原", "大同", "阳泉", "长治", "晋城", "朔州", "晋中", "运城", "忻州", "临汾", "吕梁"]
}@app.route('/api/city', methods=['GET'])
def get_cities():"""获取指定省份的城市列表查询参数:pname: 省份名称,例如"辽宁省"返回:JSON对象,包含状态码、消息和城市列表"""# 从查询参数中获取省份名称province_name = request.args.get('pname')# 检查参数是否存在if not province_name:return jsonify({"code": 400,"message": "请提供省份名称","list": []}), 400# 检查省份是否存在if province_name not in province_cities:return jsonify({"code": 404,"message": f"未找到省份: {province_name}","list": []}), 404# 返回该省份的城市列表return jsonify({"code": 200,"message": "获取城市列表成功","list": province_cities[province_name]})@app.route('/api/province', methods=['GET'])
def get_provinces():"""获取所有省份列表返回:JSON对象,包含状态码、消息和省份列表"""return jsonify({"code": 200,"message": "获取省份列表成功", "list": list(province_cities.keys())})if __name__ == '__main__':app.run(debug=True, host='0.0.0.0', port=5000)
Flask==2.3.2
Flask-CORS==4.0.0

README.md

# 城市数据API服务
这是一个简单的Flask应用,提供省份和城市数据的API接口。## 功能
- `/api/province` - 获取所有省份列表
- `/api/city?pname=省份名称` - 获取指定省份的城市列表## 安装依赖
pip install -r requirements.txt

运行应用

python app.py

应用将在 http://localhost:5000 运行。

API示例

  1. 获取所有省份:

    GET http://localhost:5000/api/province
    
  2. 获取辽宁省的城市列表:

    GET http://localhost:5000/api/city?pname=辽宁省
    

客户端示例

在HTML文件中通过XMLHttpRequest调用API:

const xhr = new XMLHttpRequest();
xhr.open('GET', 'http://localhost:5000/api/city?pname=辽宁省');
xhr.addEventListener('loadend', () => {const data = JSON.parse(xhr.response);document.querySelector('.city-p').innerHTML = data.list.join('<br>');
});
xhr.send();

关键实现说明:

  1. 查询参数获取

    province_name = request.args.get('pname')
    

    这行代码从URL查询字符串中获取名为’pname’的参数。例如,当请求是/api/city?pname=辽宁省时,province_name的值将是"辽宁省"。

  2. 返回JSON数据

    return jsonify({"code": 200,"message": "获取城市列表成功","list": province_cities[province_name]
    })
    

运行方法:

  1. 安装依赖:

    pip install -r requirements.txt
    
  2. 运行应用:

    python app.py
    
  3. 应用将在http://localhost:5000启动,可以通过浏览器或XHR访问API。

  4. 修改前端代码中的URL,将其指向本地Flask服务器而非原来的URL:

    xhr.open('GET','http://localhost:5000/api/city?pname=辽宁省')
    

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

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

相关文章

将飞帆制作的网页作为 div 集成到自己的网页中

并且自己的网页可以和飞帆中的控件相互调用函数。效果&#xff1a; 上链接 将飞帆制作的网页作为 div 集成到自己的网页中 - 文贝 进入可以复制、运行代码

Redis主从复制:告别单身Redis!

目录 一、 为什么需要主从复制&#xff1f;&#x1f914;二、 如何搭建主从架构&#xff1f;前提条件✅步骤&#x1f4c1; 创建工作目录&#x1f4dc; 创建 Docker Compose 配置文件&#x1f680; 启动所有 Redis&#x1f50d; 验证主从状态 &#x1f4a1; 重要提示和后续改进 …

k8s 1.30.6版本部署(使用canal插件)

#系统环境准备 参考 https://blog.csdn.net/dingzy1/article/details/147062698?spm1001.2014.3001.5501 #配置下载源 curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/Release.key |gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyri…

机器学习的一百个概念(7)独热编码

前言 本文隶属于专栏《机器学习的一百个概念》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索&…

RHCSA复习

在Linux中&#xff0c; wrx 分别代表写&#xff08;write&#xff09;、读&#xff08;read&#xff09;和执行&#xff08;execute&#xff09;权限&#xff0c;它们对应的权限值分别是&#xff1a; - r &#xff08;读权限&#xff09;&#xff1a;权限值为4。 - w &am…

“乐企“平台如何重构业财税票全流程生态?

2025年&#xff0c;国家税务总局持续推进的"便民办税春风行动"再次推进数字化服务升级&#xff0c;其中"乐企"平台作为税务信息化的重要载体&#xff0c;持续优化数电票服务能力&#xff0c;为企业提供更高效、更规范的税务管理支持。在这一背景下&#xf…

Android audio(6)-audiopolicyservice介绍

AudioPolicyService 是策略的制定者&#xff0c;比如某种 Stream 类型不同设备的音量&#xff08;index/DB&#xff09;是多少、某种 Stream 类型的音频数据流对应什么设备等等。而 AudioFlinger 则是策略的执行者&#xff0c;例如具体如何与音频设备通信&#xff0c;维护现有系…

Boost库搜索引擎项目(版本1)

Boost库搜索引擎 项目开源地址 Github&#xff1a;https://github.com/H0308/BoostSearchingEngine Gitee&#xff1a;https://gitee.com/EPSDA/BoostSearchingEngine 版本声明 当前为最初版本&#xff0c;后续会根据其他内容对当前项目进行修改&#xff0c;具体见后续版本…

git分支合并信息查看

TortoiseGit工具 1、选择"Revision graph" 2、勾选view中的 Show branchings and merges Arrows point towards merges 3、图案说明 红色部分‌&#xff1a;代表当前分支 橙色部分‌&#xff1a;代表远程分支 黄色部分‌&#xff1a;代表一个tag 绿色部分‌&#xf…

Java学习笔记(多线程):ReentrantLock 源码分析

本文是自己的学习笔记&#xff0c;主要参考资料如下 JavaSE文档 1、AQS 概述1.1、锁的原理1.2、任务队列1.2.1、结点的状态变化 1.3、加锁和解锁的简单流程 2、ReentrantLock2.1、加锁源码分析2.1.1、tryAcquire()的具体实现2.1.2、acquirQueued()的具体实现2.1.3、tryLock的具…

在C++11及后续标准中,auto和decltype是用于类型推导的关键特性,它们的作用和用法。

在C11及后续标准中&#xff0c;auto和decltype是用于类型推导的关键特性&#xff0c;它们的作用和用法有所不同。以下是详细说明&#xff1a; 1. auto 关键字 基本作用 自动推导变量的类型&#xff08;根据初始化表达式&#xff09;主要用于简化代码&#xff0c;避免显式书写…

Linux:进程程序替换execl

目录 引言 1.单进程版程序替换 2.程序替换原理 3.6种替换函数介绍 3.1 函数返回值 3.2 命名理解 3.3 环境变量参数 引言 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支)&#xff0c;我们所创建的所有的子进程&#xff0c;执行的代码&#x…

LeetCode.02.04.分割链表

分割链表 给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1&#xff1a; 输入&#xff1a;head [1,4,3,2,5,2], x …

Johnson算法 流水线问题 java实现

某印刷厂有 6项加工任务J1&#xff0c;J2&#xff0c;J3&#xff0c;J4&#xff0c;J5&#xff0c;J6&#xff0c;需要在两台机器Mi和M2上完 成。 在机器Mi上各任务所需时间为5,1,8,5,3,4单位; 在机器M2上各任务所需时间为7,2,2,4,7,4单位。 即时间矩阵为&#xff1a; T1 {5, …

按键++,--在操作uint8_t类型(一个取值为1~10的数)中,在LCD中显示两位数字问题

问题概况 在执行按键&#xff0c;--过程中&#xff0c;本来数值为1~10.但是在执行过程中&#xff0c;发现数值在经过10数值后&#xff0c;后面的“0”会一直在LCD显示屏中显示。 就是执行操作中&#xff0c;从1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xf…

【QT】QTreeWidgetItem的checkState/setCheckState函数和isSelected/setSelected函数

目录 1、函数原型1.1 checkState/setCheckState1.2 isSelected/setSelected2、功能用途3、示例QTreeWidget的checkState/setCheckState函数和isSelected/setSelected这两组函数有着不同的用途,下面具体说明: 1、函数原型 1.1 checkState/setCheckState Qt::CheckState QTr…

005 vue项目结构 vue请求页面执行流程(vue2)

文章目录 vue项目结构vue请求页面执行流程main.jsrouterHelloWorld.vueApp.vueindex.html vue项目结构 config目录存放的是配置文件&#xff0c;比如index.js可以配置端口 node_modules存放的是该项目依赖的模块&#xff0c;这些依赖的模块在package.json中指定 src目录分析 1…

汇丰xxx

1. Spring Boot 的了解&#xff0c;解决什么问题&#xff1f; 我的理解&#xff1a; Spring Boot 是一个基于 Spring 框架的快速开发脚手架&#xff0c;它简化了 Spring 应用的初始搭建和开发过程。解决的问题&#xff1a; 简化配置&#xff1a; 传统的 Spring 应用需要大量的…

基于 Spring Boot 瑞吉外卖系统开发(一)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;一&#xff09; 系统概述 系统功能 技术选型 初始项目和数据准备 初始项目和SQL文件下载 创建数据库并导入数据 打开reggie项目 运行效果 主函数启动项目&#xff0c;访问URL&#xff1a; http://127.0.0.1:8080/backend/pag…

大型语言模型智能应用Coze、Dify、FastGPT、MaxKB 对比,选择合适自己的LLM工具

大型语言模型智能应用Coze、Dify、FastGPT、MaxKB 对比&#xff0c;选择合适自己的LLM工具 Coze、Dify、FastGPT 和 MaxKB 都是旨在帮助用户构建基于大型语言模型 (LLM) 的智能应用的平台。它们各自拥有独特的功能和侧重点&#xff0c;以下是对它们的简要对比&#xff1a; Coz…