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