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.pswp.cn/news/900638.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900638.shtml
英文地址,請注明出處:http://en.pswp.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…