Python+FastAPI的一些語法與問題解決

Q1:result= await dbsession.execute(text(sql_context),params)

如何把result轉成key,value的字典列表

A1:

使用SQLAlchemy的mappings()方法獲取字典形式的結果集:

result = await db_session.execute(text(sql_context), params)

dict_list = [dict(row) for row in result.mappings()]

Q2:為什么aysnc方法中調用其他async方法時,跳過了調試?

A1:必須加await在被調用的async方法?

@router.post("/hand")

async def start():

? ? await migration.do_migration()

Q3:fastAPI中如何讀取json文件?

A3:

import json

import os

def read_json_file(urlpath:str,key:str):

? ? filepath=os.path.join(os.environ["project_root"],urlpath)

? ? with open(filepath) as f:

? ? ? ? data=json.load(f)

? ? ? ? return data.get(key)

Q4:python中如何獲取服務端IP和hotsname?

import socket
from fastapi import FastAPI

app = FastAPI()

@app.get("/server-ip")
async def get_server_ip():
? ? hostname = socket.gethostname()
? ? server_ip = socket.gethostbyname(hostname)
? ? return {"server_ip": server_ip}

?

?Q5?vue+fastapi獲取客戶端ip?

使用nginx反向代理

location / {
? ? proxy_set_header X-Real-IP $remote_addr;
? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

fastapi獲取

fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()
app.add_middleware(
? ? CORSMiddleware,
? ? allow_origins=["*"],
? ? allow_credentials=True,
? ? allow_methods=["*"],
? ? allow_headers=["*"],
)

@app.get("/api/client-ip")
async def get_client_ip(request: Request):
? ? real_ip = request.headers.get("X-Real-IP")?
? ? forwarded_for = request.headers.get("X-Forwarded-For")
? ? return {
? ? ? ? "ip": real_ip or forwarded_for or request.client.host,
? ? ? ? "headers": dict(request.headers)
? ? }
?

?或者從vue獲取

<template>
? <div>您的IP是: {{ clientIP }}</div>
</template>

<script>
import axios from 'axios'
export default {
? data() {
? ? return { clientIP: '' }
? },
? async mounted() {
? ? const res = await axios.get('/api/client-ip')
? ? this.clientIP = res.data.ip
? }
}
</script>

Q6?data.sort("seq",1) 報錯TypeError: sort() takes no positional arguments
A6:

這個錯誤是因為Python列表的sort()方法在Python 3.x版本中不再接受位置參數,必須使用關鍵字參數形式調用

data.sort(key=lambda x: x["seq"], reverse=True) ?# 降序排序

Q7?TypeError: 'NoneType' object is not iterable

?A7:獲取的data是空但是還是被使用了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912359.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912359.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912359.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Reactor并發無關性

Reactor&#xff0c;像 RxJava 一樣&#xff0c;可以被認為是 并發無關&#xff08;concurrency-agnostic&#xff09; 的。這意味著它不強制要求任何特定的并發模型&#xff0c;而是將選擇權交給開發者。換句話說&#xff0c;Reactor 不會強制你使用多線程或異步編程&#xff…

#華為昇騰#華為計算#昇騰開發者計劃2025#

#華為昇騰#華為計算#昇騰開發者計劃2025# 通過學習Ascend C算子開發的初級教程&#xff0c;通過課程講解及樣例實操&#xff0c;幫助我學習使用Ascend C開發自己的算子。收獲很大。 <新版開發者計劃>的內容鏈接&#xff1a;https://www.hiascend.com/developer-program_2…

FLOPS、FLOP/s、TOPS概念

在計算性能和硬件指標中&#xff0c;FLOPS、FLOP/s、TOPS 是常見的術語&#xff0c;但它們有明確的區別和應用場景。以下是詳細解析&#xff1a; 1. FLOPS&#xff08;Floating Point Operations per Second&#xff09; 定義&#xff1a; 每秒浮點運算次數&#xff08;Floati…

Windows所有系統自帶.NET Framework版本win7,win10,win11預裝.NET版本

Windows系統支持“.NET版本”匯總 本文詳細列出了Windows從NT4.0到Windows11各版本自帶的.NETFramework版本及對應最高兼容的.NETFramework版本&#xff0c;便于了解不同Windows系統之間的.NETFramework更新歷史。 以下匯總了Windows每個版本自帶的“.NET版本”&#xff0c;與…

Windows 下使用 nvm 管理 Node.js 多版本 —— 完整指南

Node.js 版本更新頻繁&#xff0c;不同項目可能依賴不同的版本&#xff0c;手動切換極為麻煩。nvm-windows 是專為 Windows 用戶開發的 Node.js 多版本管理工具&#xff0c;可以輕松地安裝、切換、卸載 Node.js 版本。 本篇將從下載到實際使用&#xff0c;手把手帶你玩轉 nvm-…

vue使用Element Plus UI框架

您好&#xff0c;艦長&#xff01;非常棒的選擇。功能是應用的骨架&#xff0c;而美觀的 UI 則是應用的靈魂和血肉。是時候為我們的飛船進行一次全面的“外觀升級”和“內飾裝修”了。 我們將集成一個在業界非常流行、功能強大的 Vue 3 組件庫——Element Plus。它將幫助我們快…

【ubuntu24.04】忘了自己把開機samba掛載的腳本放哪里了

從兩個方面來定位這幾個 Samba 掛載點&#xff1a; 一、查看當前已經掛載的 CIFS/SMB 文件系統 使用 mount mount | grep -i cifs或者 mount | grep -E (smb|cifs)這會列出所有當前活躍的 CIFS/SMB 掛載&#xff0c;比如&#xff1a; //192.168.1.100/share on /mnt/data type …

在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 環境(附詳細部署教程)

言簡意賅的講解Docker Desktop for Windows搭建Kubernetes解決的痛點 目標讀者&#xff1a; 對 Docker Desktop 有一定了解&#xff0c;能在 Windows 上成功安裝和使用 Docker Desktop。想要在本地快速搭建一套 Kubernetes 環境進行測試或學習的開發者。 一、準備工作 安裝 Doc…

dockercompose快速安裝ELK

第一步&#xff1a;環境準備 請確保您的機器上已經安裝了 Docker 和 Docker Compose。 第二步&#xff1a;創建項目目錄和配置文件 為了讓 Docker Compose 能夠正確地構建和管理容器&#xff0c;我們需要創建一個特定的目錄結構。 創建一個主目錄&#xff0c;例如 elk-stack。…

閑聊ARM內核參數傳遞機制

之前一直沒怎么在意這個問題&#xff0c;直到最近搞了個奇奇怪怪的項目&#xff0c;才發現這部分知識得補上來&#xff0c;記錄一下。 ARM有一個標準&#xff0c;叫《Procedure Call Standard for the Arm Architecture》&#xff0c;人話就是ARM架構過程調用標準&#xff0c;…

萬興喵影Filmora AI Video v14.7.03國際高級版,AI視頻剪輯全能工具,一鍵專業級創作?

[軟件名稱]: 萬興喵影Filmora AI Video v14.7.03 [軟件大小]: 199.4 MB [下載通道]: 夸克盤 | 迅雷盤 軟件介紹 &#x1f3ac;《萬興喵影》v14.7.03國際高級版&#xff5c;AI智能剪輯神器&#xff0c;解鎖全功能無水印&#xff01; ? 核心優勢&#xff1a; ? 1000背景音…

暴力風扇方案介紹

炎炎夏日&#xff0c;當普通風扇只能送來 “溫柔拂面”&#xff0c;暴力風扇卻能吹出 “臺風級” 清涼&#xff01;想知道這些 “風力狂魔” 是如何煉成的&#xff1f;答案藏在電機、電路和芯片的黃金三角組合里。? 一、電機&#xff1a;暴力風扇的 “心臟起搏器”? 暴力風扇…

pyqt小問題匯總

文章目錄 1、inherit global site-packages2、setGeometry(10,20,30,40)setGeometry(x, y, width, height)1. **x參數**2. **y參數**3. **width參數**4. **height參數** 示例說明與其他方法的對比注意事項示例代碼 1、inherit global site-packages 在pycharm 創建項目時&…

提升JavaScript性能的六大關鍵策略

1、優化代碼結構與算法 避免使用嵌套循環&#xff0c;改用更高效的算法如哈希表或二分查找。減少不必要的計算&#xff0c;緩存重復使用的計算結果。使用時間復雜度更低的算法替代高復雜度操作。優化遞歸調用&#xff0c;避免棧溢出和性能瓶頸。改用迭代或尾遞歸優化。簡化條件…

打造跨平臺應用的全能框架:Dioxus

在如今飛速發展的數字世界中,越來越多的開發者開始尋找能夠滿足跨平臺需求的高效框架。而在這些選擇中,Dioxus這個全棧應用框架脫穎而出。Dioxus是一款為Web、桌面和移動端開發而設計的全棧框架,采用Rust語言,具備跨平臺、一體化的優勢。本文將深入介紹Dioxus的獨特功能,應…

大事件項目記錄5-用戶接口開發-更新用戶頭像

5&#xff09;更新用戶頭像。 UserController.java&#xff1a; PatchMapping("updateAvatar")public Result updateAvatar(RequestParam String avatarUrl){userService.updateAvatar(avatarUrl);return Result.success();} UserService.java&#xff1a; UserServ…

Spring Cloud 微服務架構模型

下面是一個完整的 springcloud-eureka-demo 示例項目&#xff0c;包含&#xff1a; Eureka Server 注冊中心 Eureka Client 服務提供者&#xff08;service-provider&#xff09; Eureka Client 服務消費者&#xff08;service-consumer&#xff09; &#x1f4c1; 項目結構…

計算機網絡 網絡層:控制平面

在本章中&#xff0c;包含網絡層的控制平面組件。控制平面作為一種網絡范圍的邏輯&#xff0c;不僅控制沿著從源主機到目的主機的端到端路徑間的路由器如何轉發數據報&#xff0c;而且控制網絡層組件和服務如何配置和管理。5.2節&#xff0c;傳統的計算圖中最低開銷路徑的路由選…

力扣第85題-最大矩形

力扣鏈接:85. 最大矩形 - 力扣&#xff08;LeetCode&#xff09; 給定一個僅包含 0 和 1 、大小為 rows x cols 的二維二進制矩陣&#xff0c;找出只包含 1 的最大矩形&#xff0c;并返回其面積。 輸入&#xff1a;matrix [["1","0","1","…

6-創建和查詢

創建&查詢 DDL - 表操作 - 查詢 查詢當前數據庫所有表 查詢庫表之前需要先試用 use 數據庫名 進入數據庫才可以查詢到該數據庫的庫表, 否則將會出現未選擇數據庫的報錯; 如果數據庫中并無數據表, 則會出現 Empty set 的相應結果 SHOW TABLES;切換到 sys 數據庫, 并且查詢庫…