Python Flask:对新请求返回相同的响应

Python Flask: Same Response Returned for New Request

Python 这里是新手。我有一个基本的 Flask API 来检查汽车的品牌和型号。

预期行为: 目的是像这样向服务器发送GET请求:

http://127.0.0.1:5000//EndPoint1?CarMakeModel=ChevySilverado

并且响应应该 return 价格:25000 美元

如果我像这样提交第二个请求:

http://127.0.0.1:5000//EndPoint1?CarMakeModel=FordPinto

回复应该return价格:$5000

不正确的观察行为: 当我为 ChevySilverado 发出 GET 请求时(如上面的 URL),它 return 是正确的 $25000。但是,当我为 FordPinto 发送第二个 URL 时,它又 return 变成了 25000 美元,而不是 5000 美元。 它将始终重复 $25000 作为输出。

当我在第二个请求 URL 上提交 'FordPinto' 时,如何才能将这个 Python 代码变成 return 5000 美元?

这是我试过的代码:

#PriceCheck.py:

from Flask import request
PriceChecker=[]
Price=[]
PriceChecker= request.args.get('CarMakeModel')
if PriceChecker == 'ChevySilverado':
    Price = '000'
if PriceChecker == 'FordPinto':
    Price = '00'

#Run.py:

from flask import Flask
app = Flask(__name__)
@app.route('/EndPoint1')
def Response():
    from PriceCheck import PriceChecker
    return str(PriceChecker)
if __name__ == '__main__':
    app.run(debug=True)

因为Price是一个模块全局变量,它只设置一次,当PriceCheck.py第一次导入时。您应该将 PriceCheck.py 中的代码包装在一个函数中,以便可以重复调用它:

PriceCheck.py:

from Flask import request

def check_price():
    PriceChecker= request.args.get('CarMakeModel')
    if PriceChecker == 'ChevySilverado':
        Price = '000'
    if PriceChecker == 'FordPinto':
        Price = '00'
    # You also need to handle `PriceChecker` being other values!
    return Price

Run.py:

from flask import Flask
from PriceCheck import check_price

app = Flask(__name__)

@app.route('/EndPoint1')
def Response():
    return check_price()

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