当前位置: 首页 > news >正文

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 CORS

app = 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.dtcms.com/a/113278.html

相关文章:

  • ConstructorResolver
  • Day2-2:前端项目uniapp壁纸实战
  • HashMap 底层原理详解
  • C++学习之LINUX网络编程-套接字通信基础
  • JWT认证服务
  • [MySQL初阶]MySQL(9)事务机制
  • 基于springboot+vue的二手车交易系统
  • Supervisor的安装和使用
  • 0101安装matplotlib_numpy_pandas-报错-python
  • Business English Certificates (BEC) 高频词汇学习
  • 将MATLAB神经网络数据转换为C/C++进行推理计算
  • Linux网络状态监控利器:netstat与ping命令详解
  • Java的Selenium的特殊元素操作与定位之select下拉框
  • RocketMQ初认识
  • C,C++语言缓冲区溢出的产生和预防
  • 【2012】【论文笔记】太赫兹波在非磁化等离子体——
  • 【国产突围!致远电子ZXDoc如何打破Vector垄断,成为新能源车研发“神器”?】
  • Xshell Plus 6下载与安装
  • 【机器学习】机器学习工程实战-第4章 特征工程
  • LabVIEW商业软件开发注意问题
  • C语言-基础语法学习
  • 【Linux系统】linux下的软件管理
  • 大数据技术发展与应用趋势分析
  • `use_tempaddr` 和 `temp_valid_lft ` 和 `temp_prefered_lft ` 笔记250405
  • web性能检测工具lighthouse
  • k8s 1.23升级1.24
  • JavaSE基础——第六章 类与对象(二)
  • 使用dockerbuildx在x86机器上构建arm版docker镜像
  • 神经网络基础
  • 嵌入式AI简介