MySQLからデータを取得できるAPIを作成しました。 stockListListが定義されていれば動作します。しかし、実際の世界では、Ionicアプリから取得する必要があり、stockListは個々のユーザーによって定義されます。Flask Python:フラスコにIonicアプリからのデータを受け入れる
単にstockList =[]
を入力しても機能しません。 現在flask_app.pyは以下の通りです:
from flask import Flask,jsonify,abort,make_response,request
import MySQLdb
import MySQLdb.cursors
app = Flask(__name__)
@app.route('/KLSEwatch', methods=['GET'])
def KLSEwatch():
db = MySQLdb.connect(host='vinvin.mysql.pythonanywhere-services.com',user='vinvin',passwd='xxx',db='vinukdb$default',cursorclass=MySQLdb.cursors.DictCursor)
curs = db.cursor()
stockList = ['SHELL','GENM']
placeholders = ','.join(['%s'] * len(stockList))
query = 'SELECT * FROM KLSE WHERE Stock IN ({})'.format(placeholders)
curs.execute(query,tuple(stockList))
f = curs.fetchall()
return jsonify({'Stock': f})
それがイオンアプリからであるユーザーからデータを取得するものとして、私はstockListを交換するものとするもの。データは文字列または4桁の番号の下
あなたは私達にあなたのイオンのコードのいずれかを示さなかった
//setting get counter-number of get requests-
var getCounter = 0;
for (var market in watchListQuery) {
if(watchListQuery[market].length>0){
getCounter += 1;
}
}
if(getCounter == 0)
$ionicLoading.hide();
$scope.watchedStocks = [];
for (var market in watchListQuery) {
if(watchListQuery[market].length>0){
var queryString = watchListQuery[market].toString().replace(/,/g, "','");
$webServicesFactory.get($marketProvider[market].queryURL+"/watchlist_query", {AnonymousToken: $marketProvider[market].token}, {parameters:{stockList:queryString}}).then(
function success(data) {
getCounter -=1 ;
$scope.watchedStocks = $scope.watchedStocks.concat(data);
if(getCounter <= 0)
$ionicLoading.hide();
},
function error() {
$ionicLoading.hide();
}
);
}
}//end of for each loop
'render_template(' home.html ')が返す' @ pp.route( '/') 'は何ですか? – vindex
watchlistCtrl.jsにあるイオンコード部分を追加します – vindex