此处是Python新手。我有一个基本的Flask 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)
答案 0 :(得分:4)
由于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
:
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)