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

2024-10-05 14:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

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

预期行为: 其目的是向服务器发送GET请求,如下所示:

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

而回复应该返回价格:25000美元

如果我再次提出这样的请求:

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

回复应返回价格:5000美元

观察到的错误行为: 当我对ChevySilverado发出GET请求(如上面的URL),它会正确返回25000美元。但当我为FordPinto发送第二个URL时,它会再次返回25000美元,而不是5000美元。它总是重复25000美元作为输出。

当我在第二个请求URL上提交'FordPinto'时,如何让这个Python代码返回$5000?在

下面是我尝试过的代码:

#PriceCheck.py:

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

#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)

Tags: fromimportapphttpurlflaskgetif
1条回答
网友
1楼 · 发布于 2024-10-05 14:27:02

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

新建PriceCheck.py

from Flask import request

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

新建Run.py

^{pr2}$

相关问题 更多 >