データベースの名前を含むドロップダウンから選択した値を渡し、渡されたデータベース名に接続するバックグラウンドでpythonスクリプトに渡します。続き は、私は、「データベース」Pythonスクリプトにドロップダウン値を渡すAJAX呼び出しを作成します
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$.ajax({
url : "/form_submit",
data : $('#databases').val(),
type : 'POST',
success : alert("Hi dear count " + $('#databases').val())
});
});
});
</script>
を書かれているAjaxコードはHTMLのselectタグのIDです。私はデータを書いています:
$('#databases').val()
データをPythonコードに渡します。
次は、渡された値を受け入れる必要のあるPythonコードです。私は、コンソールから直接、以下のコードを実行した場合、それはJSON形式で結果を返しますが、それは間接的に、私はAJAX呼び出しを通過したデータベース名を受け入れる必要がありdtb = request.select['value']
として変数を宣言した
@app.route("/form_submit/", methods=['GET','POST'])
def connect():
import json
dtb = request.select['value']
db = MySQLdb.connect("localhost","root","",dtb)
cursor = db.cursor()
cursor.execute("SELECT * FROM REPORT_SUITE")
results = cursor.fetchall()
json_return_value =[]
for result in results:
table_data = {'REPORTSUITE_ID' : result[0], 'REPORTSUITE_NAME' : result[1], 'STAGING_DATABASE' : result[2], 'DWH_DATABASE' : result[3], 'TRANS_TABLE' : result[4]}
json_return_value.append(table_data)
print ("hi")
print json.dumps(json_return_value)
return json.dumps(json_return_value)
成功していない実行されています。 また、Webブラウザで返されたデータをJSON形式で表示できるはずです。 私は周りを見回し、多くの提案されたソリューションを適用しましたが、私はまだ渡された値を渡してキャッチする方法を決定することができません。
ようこそことができます。 「間接的に実行しても成功しなかった」ということは、正確にはどういう意味ですか?エラーメッセージはありますか? AJAXリクエストの送信時に 'print(" hi ")'の結果がコンソールに表示されますか?いくつかのガイダンスについては、[良い質問をする方法](https://stackoverflow.com/help/how-to-ask)をご覧ください。 – FriendFX
私はpythonフラスコを使用してWebアプリケーションを作成していますので、htmlページのボタンをクリックすると/ form_submit /に行き、渡された値、つまりデータベース名を受け取り、接続してjson形式のデータを返します。 Webページに表示され、「hi」は印刷されません。私が受け取るエラーメッセージは、 'Request'オブジェクトに属性 'select'がありません。だから私はドロップダウンに使用した
フラスコやjavascriptのデバッグに渡されたリクエストデータを確認するために、あなたのブラウザのデベロッパーツールを使用しましたか? – Peter