[解決済み] FlaskでHTMLフォームからPythonスクリプトにデータを送信する
2022-10-22 02:16:20
質問
Pythonスクリプトで以下のようなコードを書いています。
def cmd_wui(argv, path_to_tx):
"""Run a web UI."""
from flask import Flask, flash, jsonify, render_template, request
import webbrowser
app = Flask(__name__)
@app.route('/tx/index/')
def index():
"""Load start page where you select your project folder
or load history projects from local DB."""
from txclib import get_version
txc_version = get_version()
prj = project.Project(path_to_tx)
# Let's create a resource list from our config file
res_list = []
prev_proj = ''
for idx, res in enumerate(prj.get_resource_list()):
hostname = prj.get_resource_host(res)
username, password = prj.getset_host_credentials(hostname)
return render_template('init.html', txc_version=txc_version, username=username)
また、init.htmlにHTMLフォームを用意しています。
<form>
<input type="text" id="projectFilepath" size="40" placeholder="Spot your project files">
<input type="button" id="spotButton" value="Spot">
</form>
Pythonスクリプトの変数でユーザーが"spotButton"をクリックしたときに、"projectFilepath"からのユーザー入力をどのように渡せばよいですか。
私はPythonとFlaskの初心者なので、何か間違いがあれば許してください。
どのように解決するのですか?
この
form
タグはいくつかの属性を設定する必要があります。
-
action
: 送信時にフォームのデータが送られるURL。これをurl_for
. フォームの表示とデータの処理を同じURLで行う場合は、省略可能です。 -
method="post"
: フォームデータとして POST メソッドで送信します。指定されない場合、または明示的にget
に設定されている場合、データはクエリ文字列 (request.args
) で、代わりに GET メソッドで送信されます。 -
enctype="multipart/form-data"
: フォームにファイル入力がある場合、このエンコーディングが設定されていなければ、ファイルはアップロードされず、Flask はそれらを見ることができません。
は
input
タグには
name
パラメータが必要です。
投稿されたデータを処理するビューを追加し、それは
request.form
の下にあり、入力の
name
. ファイルへの入力は
request.files
.
@app.route('/handle_data', methods=['POST'])
def handle_data():
projectpath = request.form['projectFilepath']
# your code
# return a response
フォームの
action
をそのビューの URL に設定します。
url_for
:
<form action="{{ url_for('handle_data') }}" method="post">
<input type="text" name="projectFilepath">
<input type="submit">
</form>
関連
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] HTMLマークアップのどこに<script>タグを記述すればよいですか?
-
[解決済み] HTMLページからのリダイレクト
-
[解決済み] Pythonでファイル名から拡張子を抽出する
-
[解決済み] Pythonスクリプトのプロファイリングはどのように行うのですか?
-
[解決済み] スクリプトを実行しているPythonのバージョンを確認するにはどうしたらいいですか?
-
[解決済み] Flaskのリクエストで受信したデータを取得する
-
[解決済み】enctype='multipart/form-data'とはどういう意味ですか?
-
[解決済み】なぜPythonはこのJSONデータをパースできないのですか?[終了] PythonがこのJSONデータをパースできないのはなぜですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] Python 言語を決定するには?
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] virtualenvsはどこに作成するのですか?