まず、フラスコアプリを使用しています。 私はこのコードの後ろにJavaScriptからデータを収集:ここでPythonの別のクラスで定義された値を使用してデータを前面に返す(db.Model型の)クラスを定義する方法はありますか?
@app.route('/getFormData', methods=['POST'])
def get_javascript_data():
params = request.json
sunElevation = params['sunElevation']
cloudCoverage = params['cloudCoverage']
thresholdNDVI = params['thresholdNDVI']
limitScene = params['limitScene']
city = params['city']
coords = params['coords']
data_search = passData(sunElevation, cloudCoverage, thresholdNDVI, limitScene, city, coords)
run_script = passData.calcul(data_search)
return jsonify(data_search.data_dict)
は私のCalculがのfonctionです:エンドNDVIデータで
class passData():
def __init__(self, sunElevation, cloudCoverage, thresholdNDVI, limitScene, city, coords):
self.sunElevation = sunElevation
self.cloudCoverage = cloudCoverage
self.thresholdNDVI = thresholdNDVI
self.limitScene = limitScene
self.city = city
self.coords = coords
self.coords.append(self.coords[0])
self.data_dict = [{'sunElevation':self.sunElevation,
'cloudCoverage':self.cloudCoverage,
'thresholdNDVI':self.thresholdNDVI,
'limitScene':self.limitScene,
'city':self.city,
'coords':self.coords
}]
def calcul(self):
main_script(self.sunElevation, self.cloudCoverage, self.thresholdNDVI, self.limitScene, self.city, self.coords)
return (print("traitement terminé"))
はテーブル名「ndvi_ +都市の下に、データベースに格納されています' すべてああ、これはうまく動作しますが、私は結果を視覚化する前にこのデータを返送したい後、ここに私はそうするために
@app.route('/ndviAuto')
def get_ndviAuto():
query = select([NdviAuto.ogc_fid.label('ogc_fid'), func.ST_AsGeoJSON(func.ST_Transform(NdviAuto.wkb_geometry,4326)).label('wkb_geometry')]).where(NdviAuto.wkb_geometry!=None)
dataQuery = db.session.execute(query).fetchall()
data_all = []
for ndvi in dataQuery:
ndvi = dict(ndvi)
data_all.append({
'type': 'Feature',
'properties':{
'id':ndvi['ogc_fid'],
},
'geometry':json.loads(ndvi['wkb_geometry'])
})
return jsonify(data_all)
を使用するルートがある私は、このように定義NdviAutoクラスを作った:
class NdviAuto(db.Model):
__tablename__ = 'ndvi_' // + city ?
ogc_fid = db.Column(db.Integer, primary_key=True)
wkb_geometry = db.Column(Geometry(geometry_type='POLYGON', srid=32631))
私の問題は、自動的に正しい表を取得するために値 'city'を使用してこのクラスを構築する方法がわかりません。今、データを返信するルートは機能しますが、毎回、自分自身、テーブル名を変更する必要があります。 私はpostgreSQLデータベースを使用しています。
あなたは「毎回を変更する必要がある」とはどういう意味ですか? *都市*はリクエストからリクエストに変更できますか?それともプログラムの生涯中に修正されますか? –