簡體   English   中英

如何在 python 中將參數從客戶端傳遞到服務器

[英]How to pass a parameter from client side to server in python

我正在使用flask並且flask-restx嘗試創建一個協議以從另一個服務獲取特定的字符串。 我想知道是否有一種方法可以將參數從另一個 function 傳遞到服務器端。 例如,這是我的服務器端:

from flask_restx import Api,fields,Resource
from flask import Flask
app = Flask(__name__)
api = Api(app)

parent = api.model('Parent', {
    'name': fields.String(get_answer(a,b)),
    'class': fields.String(discriminator=True)
})
@api.route('/language')
class Language(Resource):
    # @api.marshal_with(data_stream_request)
    @api.marshal_with(parent)
    @api.response(403, "Unauthorized")
    def get(self):

        return {"happy": "good"}

get_answer function 在不同的文件中:

get_answer(a,b):
  return a + b

我期望的是從一個文件中得到get_answer的結果,然后生成我的API,這樣GET請求就可以拿到了。 我知道如果有一個 web 頁面,我們可以使用render_template(form來獲取它。但是如果我想從另一個 function 獲取值怎么辦?我知道我們只使用app.run()運行服務器,但是我們可以將任何值傳遞到服務器嗎?猜測app.run(a,b)在這種情況下不應該起作用。我們肯定需要將兩個參數傳遞到服務器。或者我們可以存儲get_answer(a,b)的答案在 main 中使用ab的特定值,然后將數字傳遞到服務器端。但無論哪種方式都需要參數。


我測試過的一件事是將服務器包裝成 function。但在我們的例子中,將 class 包裝在 function 中是個好主意,因為我們有class Language(Resource):

get_answer function 在不同的文件中

然后導入並調用它

from other_file import get_answer

... 
def get(self):
    return {"answer": get_answer(2,2)}

正如另一個答案所示,如果您想使用自定義 arguments,請從請求 object 中解析它們

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM