gpt4 book ai didi

Python:Flask 返回具有两个路由的内部服务器错误

转载 作者:行者123 更新时间:2023-11-29 19:16:14 25 4
gpt4 key购买 nike

我需要两个可以使用 Stock 和 Stockcode 访问同一数据库的输入。但是,它返回内部服务器错误

我的代码如下:

@app.route('/NYSE/<Stock>', methods=['GET'])
@app.route('/NYSE/<Stockcode>', methods=['GET'])
def NYSEstock(Stock,Stockcode):
try:
call = db.session.execute("SELECT * FROM NYSE WHERE (Stockcode LIKE :param or Stock LIKE :param1)",{"param":Stockcode,"param1":Stock})
c = call.fetchall()
c1 = [OrderedDict(zip(col,t)) for t in c]
except Exception:
return 'Error: unable to fetch items'
#return "hihi"
return jsonify({'Stock': c1})

我在MySQL中的数据如下:

{
"Stock": [
{
"index": 189,
"Stock": "IBM",
"Stockcode": "4350",
"MACD": "No",
"STOCH": "No",
"RSI": "No",
}]

我期望路线/NYSE/IBM/NYSE/4350两者都能够访问数据。/NYSE 将包含许多股票,但 /NYSE/<Stock>/NYSE/<Stockcode >,我们就能找到具体的库存。

将其分成两个即可解决问题,但我更喜欢只有一个 def

@app.route('/NYSE/<Stock>', methods=['GET'])
def NYSEstock(Stock):
try:
call = db.session.execute("SELECT * FROM NYSE WHERE (Stock LIKE :param )",{"param":Stock})
c = call.fetchall()
c1 = [OrderedDict(zip(col,t)) for t in c]
except Exception:
return 'Error: unable to fetch items'
#return "hihi"
return jsonify({'Stock': c1})

@app.route('/NYSEstockcode/<Stockcode>', methods=['GET'])
def NYSEstockcode(Stock):
try:
call = db.session.execute("SELECT * FROM NYSE WHERE (Stockcode LIKE :param )",{"param":Stockcode})
c = call.fetchall()
c1 = [OrderedDict(zip(col,t)) for t in c]
except Exception:
return 'Error: unable to fetch items'
#return "hihi"
return jsonify({'Stock': c1})

最佳答案

问题是 NYSEstock 函数,它必须接受一个参数。因为app.route装饰器只添加了一条规则,所以router只有一个参数,可以引用下面的代码:

@app.route('/NYSE/<stock_or_id>', methods=['GET'])
@app.route('/NYSE/<stock_or_id>', methods=['GET'])
def NYSEstock(stock_or_id):
try:
call = db.session.execute("SELECT * FROM NYSE WHERE (Stockcode LIKE :param or Stock LIKE :param1)",{"param":stock_or_id,"param1":stock_or_id})
c = call.fetchall()
c1 = [OrderedDict(zip(col,t)) for t in c]
except Exception:
return 'Error: unable to fetch items'
#return "hihi"
return jsonify({'Stock': c1})

关于Python:Flask 返回具有两个路由的内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42685915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com