国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python:使用RESTful API(flask)調(diào)用python程序傳遞參數(shù),實現(xiàn)Web端調(diào)用python程序

這篇具有很好參考價值的文章主要介紹了python:使用RESTful API(flask)調(diào)用python程序傳遞參數(shù),實現(xiàn)Web端調(diào)用python程序。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

問題描述

現(xiàn)有一個用python寫的程序(或者是一個或幾個的函數(shù)接口),需要在Web前端調(diào)用python寫的函數(shù)。如果直接用前端java來調(diào)用會很不方便,而且會出現(xiàn)各種麻煩的問題,下面給出如何在web前端調(diào)用python的接口。

解決方法

使用python的RESTful API庫將python寫的函數(shù)封裝為Web端可調(diào)用的接口,在web端即可直接調(diào)用python的程序。

解決過程

1. 安裝RESTful API環(huán)境

RESTful API環(huán)境其實主要是需要安裝flask庫,安裝方法如下:
使用pip安裝:

pip install flask

使用conda 安裝:
如何沒有創(chuàng)建新的虛擬環(huán)境,首先創(chuàng)建虛擬環(huán)境:

conda create --name <環(huán)境名稱> [python=<Python版本>]
# 例如
conda create --name myenv python=3.10

然后激活進入創(chuàng)建的新環(huán)境:

conda activate myenv

然后安裝flask:

conda install flask

安裝途中選擇y即可安裝好。

2.測試是否安裝完成

from flask import Flask

app = Flask(__name__)

@app.route('/')  
def hello_world():
    return "hello world"

if __name__=='__main__':
    app.run()

如果出現(xiàn)下面的輸出,說明flask安裝完成,然后復制下面的網(wǎng)站,輸入瀏覽器
python提供restful接口,python,python,restful,flask,web端調(diào)用python
如果瀏覽器上顯示返回的內(nèi)容,則說明配置成功:
python提供restful接口,python,python,restful,flask,web端調(diào)用python

3. 如何調(diào)用帶參數(shù)的python程序

上面的是一個簡單的例子,下面介紹一下如何調(diào)用帶參數(shù)的python程序
代碼如下:

from flask import Flask, request, jsonify

app = Flask(__name__)

# 求三個數(shù)的乘積,第三個輸入?yún)?shù)為數(shù)組類型
def multiply(num1,num2,num3):
    return num1*num2*num3[0]
    
# sum 為端口,methods為方法
@app.route('/sum', methods=['GET'])
def sum_numbers():
	# 首先獲取參數(shù),將參數(shù)讀進來
    num1 = float(request.args.get('num1'))
    num2 = int(request.args.get('num2'))
    num3 = np.array(eval(request.args.get('num3')))
    # 將讀取到的參數(shù)輸入函數(shù)和所要計算公式中
    result = num1 + num2 + multiply(num1,num2,num3)
    # 所要返回的內(nèi)容,該例子返回的是一個字典類型數(shù)據(jù)
    result = {'ID':num1,'sum':result}
    return jsonify(result)

if __name__ == '__main__':
    app.run()

運行程序后,在瀏覽器輸入:

http://127.0.0.1:5000/sum?num1=10&num2=20&num3=[2,3]

則可以顯示返回值
python提供restful接口,python,python,restful,flask,web端調(diào)用python
根據(jù)上述步驟即可實現(xiàn)在Web端調(diào)用python程序接口。但調(diào)用接口的時候需要先運行上述的函數(shù)或接口,然后在瀏覽器中輸入相應的url才可調(diào)用成功。

注意事項

1. 報錯如何解決

出錯最多的為404 NOT Found,這個錯誤一般是因為端口與程序中定義的不一致,自行檢查一般可以解決。
還有就是Internal Server Error 500,這個錯誤說明端口可以正常訪問,但是內(nèi)部的程序或代碼語法出現(xiàn)了問題,可以在代碼中使用try....except來捕捉錯誤具體信息:

from flask import Flask, request, jsonify

app = Flask(__name__)

# 求三個數(shù)的乘積,第三個輸入?yún)?shù)為數(shù)組類型
def multiply(num1,num2,num3):
    return num1*num2*num3[0]
    
# sum 為端口,methods為方法
@app.route('/sum', methods=['GET'])
def sum_numbers():
	try:
		# 首先獲取參數(shù),將參數(shù)讀進來
	    num1 = float(request.args.get('num1'))
	    num2 = int(request.args.get('num2'))
	    num3 = np.array(eval(request.args.get('num3')))
	    # 將讀取到的參數(shù)輸入函數(shù)和所要計算公式中
	    result = num1 + num2 + multiply(num1,num2,num3)
	    # 所要返回的內(nèi)容,該例子返回的是一個字典類型數(shù)據(jù)
	    result = {'ID':num1,'sum':result}
	    return jsonify(result)
	except Exception as e:
        traceback.print_exc()
        return "Internal Server Error: " + str(e), 500

if __name__ == '__main__':
    app.run()

當報錯Internal Server Error 500時,可以采用上述方法來查看具體錯誤。一般會返回類型值類型為非jsonify或string或數(shù)字類型,可以在返回值前添加int、float或str來進行轉(zhuǎn)換,即可解決問題。

2. 多個函數(shù)調(diào)用

如果是多個函數(shù)調(diào)用,格式如下:

from flask import Flask, request, jsonify

app = Flask(__name__)
def function1():def function2():def function3():
	…
	…
if __name__ == '__main__':
    app.run()

以上就是全部內(nèi)容,最后貼出一個如何用flask調(diào)用簡單處理柵格數(shù)據(jù)的例子,其他操作可以參考:文章來源地址http://www.zghlxwxcb.cn/news/detail-807185.html

# test
import numpy as np
import math
from osgeo import gdal
from osgeo import osr
from osgeo import ogr
from shapely.geometry import Point
from shapely.wkt import dumps
from flask import Flask, request, jsonify

app = Flask(__name__)

folder_dem = "C:\\Users\\Administrator\\Desktop\\ycDEM.tif"

# read data, nan to 0
def ReadData(filepath):
    gdal.AllRegister()
    ds = gdal.Open(filepath)
    cols = ds.RasterXSize
    rows = ds.RasterYSize
    bands = ds.RasterCount
    geotrans = ds.GetGeoTransform()
    proj = ds.GetProjection()
    data = ds.ReadAsArray()
    data[data == data[0,0]] = 0
    return data

@app.route('/ReadData1')
def test1():
    try:
        a = ReadData(folder_dem)
        b = np.max(a)
        point1 = Point(31.3,42.3)
        wkt1 = dumps(point1)
        c = {'a': int(b), 'b': int(b), 'c':wkt1}
        # 返回包含兩個字典
        return jsonify([c,c])
    except Exception as e:
        traceback.print_exc()
        return "Internal Server Error: " + str(e), 500

@app.route('/ReadData2')
def test2():
    try:
        a = ReadData(folder_dem)
        b = np.max(a)
        point1 = Point(3,4)
        wkt1 = dumps(point1)
        c = {'a': int(b), 'c':wkt1}
        return jsonify([c,c])
    except Exception as e:
        traceback.print_exc()
        return "Internal Server Error: " + str(e), 500
    
if __name__ == '__main__':
    app.run()

更多內(nèi)容關注公眾號: GISerQ

到了這里,關于python:使用RESTful API(flask)調(diào)用python程序傳遞參數(shù),實現(xiàn)Web端調(diào)用python程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • flask中實現(xiàn)restful-api

    flask中實現(xiàn)restful-api

    flask中實現(xiàn)restful-api 舉例,我們可以創(chuàng)建一個用于管理任務(Task)的API。在這個例子中,我們將有以下API: GET /tasks : 獲取所有任務 POST /tasks : 創(chuàng)建一個新的任務 GET /tasks/id : 獲取一個任務的詳情 PUT /tasks/id : 更新一個任務 DELETE /tasks/id : 刪除一個任務 在這個例子中,我們將使

    2024年02月14日
    瀏覽(22)
  • 探索Flask中的RESTful API設計與實現(xiàn)

    基礎介紹: ? RESTful API(Representational State Transfer)是一種基于HTTP協(xié)議設計的應用程序編程接口(API)風格,用于在客戶端和服務器之間進行通信。它提供了一組規(guī)范和約束,用于創(chuàng)建可伸縮、可靠和可維護的網(wǎng)絡服務。 路徑(URI)設計: 使用有意義的路徑來表示資源,例

    2024年01月21日
    瀏覽(19)
  • Flask進階:構建RESTful API和數(shù)據(jù)庫交互

    在初級教程中,我們已經(jīng)介紹了如何使用Flask構建基礎的Web應用。在本篇中級教程中,我們將學習如何用Flask構建RESTful API,以及如何使用Flask-SQLAlchemy進行數(shù)據(jù)庫操作。 REST(Representational State Transfer)是一種構建Web服務的方法,它利用了HTTP協(xié)議中的四種基本操作:GET、POST、

    2024年02月14日
    瀏覽(24)
  • FastAPI和Flask:構建RESTful API的比較分析

    FastAPI和Flask:構建RESTful API的比較分析

    Python 是一種功能強大的編程語言,廣泛應用于 Web 開發(fā)領域。 FastAPI ?和 Flask 是 Python Web 開發(fā)中最受歡迎的兩個框架。本文將對 FastAPI 和 Flask 進行綜合對比,探討它們在語法和表達能力、生態(tài)系統(tǒng)和社區(qū)支持、性能和擴展性、開發(fā)工具和調(diào)試支持、安全性和穩(wěn)定性、學習曲線

    2024年02月13日
    瀏覽(26)
  • java restful application/x-www-form-urlencoded 傳遞參數(shù)

    java restful application/x-www-form-urlencoded 傳遞參數(shù)

    ? ? ? ? 在發(fā)送短信的時候,要使用x-www-form-urlencoded的編碼格式進行傳遞參數(shù)。? 具體要求: 參數(shù)名稱 說明 備注 userId 用戶名 timespan 時間戳 格式為yyyyMMddHHmmss password 密碼 此處用原始密碼+時間戳 做MD5加密,32位大寫格式 ? phone 手機號 多個用英文逗號隔開 msgType 編碼類型 選

    2024年02月14日
    瀏覽(26)
  • 用Kettle調(diào)用Restful API 接口

    用Kettle調(diào)用Restful API 接口

    前言 作為一名架構師,在帶領團隊進行項目開發(fā)時,筆者認為一定要遵循一個原則:能借助第三方工具解決的開發(fā)任務,盡量用工具解決,以此來減少開發(fā)量,這樣不但能夠提高團隊的工作效率,便于項目及時交付,也能在開發(fā)人員數(shù)量一定的條件下,更容易把余下的開發(fā)工

    2024年02月01日
    瀏覽(23)
  • 解釋 RESTful API,以及如何使用它構建 web 應用程序

    ???????? RESTful API stands for Representational State Transfer Application Programming Interface. It is a set of principles and guidelines for building web services that provide data in a standard format, typically JSON or XML. RESTful API emphasizes on uniformity, scalability, reliability, performance, and flexibility. It operates on HTTP and follo

    2024年02月14日
    瀏覽(38)
  • 解釋 RESTful API,以及如何使用它構建 web 應用程序。

    RESTful API是一種利用HTTP協(xié)議進行通信的Web API設計風格,它采用了一組統(tǒng)一且可緩存的操作,包括GET、POST、PUT、DELETE等,通過URL來定位資源,以及使用JSON、XML等格式來傳輸數(shù)據(jù),以實現(xiàn)系統(tǒng)之間的數(shù)據(jù)交互和資源共享。 使用RESTful API構建Web應用程序,首先需要設計API的URL、

    2024年02月11日
    瀏覽(41)
  • 【畢設必備】手把手帶你用Python搭建一個簡單的后端服務- API的創(chuàng)建,前后端交互的數(shù)據(jù)傳遞,GET,POST,JSON,F(xiàn)LASK

    【畢設必備】手把手帶你用Python搭建一個簡單的后端服務- API的創(chuàng)建,前后端交互的數(shù)據(jù)傳遞,GET,POST,JSON,F(xiàn)LASK

    Python是一種 流行 的高級編程語言,具有易于學習和使用的特性,被廣泛應用于各種領域。 簡單易學 :Python的語法清晰簡潔,易于理解和學習。與其他編程語言相比,Python的語法設計非常直觀,使得編程新手也能快速上手。 強大的標準庫和豐富的第三方庫 :Python擁有一個龐

    2024年02月04日
    瀏覽(824)
  • 使用Flask Web創(chuàng)建一個調(diào)用ChatGPT API的網(wǎng)頁--簡單示例(linux環(huán)境下)

    前提:你應該要有一個能正常使用chatGPT的openAI賬號;即你已經(jīng)成功注冊了chatGPT,并能正常使用。 下面是一個使用Flask Web框架創(chuàng)建調(diào)用ChatGPT API的網(wǎng)頁的示例代碼和工程結構: 具體的工程,你可以選擇自己創(chuàng)建,也可以直接下載我創(chuàng)建好的工程,鏈接如下: https://download.csd

    2024年02月13日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包