質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

937閲覧

AttributeError: 'Request' object has no attribute 'index' の対応

Android-student

総合スコア5

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2023/02/05 11:21

実現したいこと

HTMLの内容をPythonに引き渡す。

前提

HTMLで作成したテキストの内容をPythonに引き渡して表示する機能を作成しています。

発生している問題・エラーメッセージ

HTML上のフォームは表示されるがテキストを入力してsubmitすると
AttributeError: 'Request' object has no attribute 'index'
が表示される。

該当のソースコード

index.html

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>Hello</title> 6 </head> 7 <body> 8 <h1>Hello World{{ message }}</h1> 9 <form method="POST"> 10 <p>USERID<br> 11 <input type="text" name="userid"></p> 12 <p>PASSWORD<br> 13 <input type="text" name="passwd"></p> 14 <p><input type="submit" value="LOGIN"></p> 15 </form> 16 </body> 17</html> 18 19```app.py 20from flask import Flask, request, render_template 21 22# Flaskをインスタンス化している 23app = Flask(__name__) 24 25 26# デフォルトページの設定 27@app.route('/', methods=['GET', 'POST']) 28def index(): 29 # 2回目以降データが送られてきた時の処理です 30 if request.method == 'POST': 31 print(str(request.index['userid'])) 32 print(str(request.index['passwd'])) 33 return render_template('index.html') 34 # 1回目のデータが何も送られてこなかった時の処理です。 35 else: 36 return render_template('index.html') 37 38if __name__ == '__main__': 39 app.run(port=8000, debug=True) 40 41### 試したこと 42AttributeError を検索していくつかのサイトを確認しましたが対応が分かりませんでした。 43 44### 補足情報(FW/ツールのバージョンなど) 45Python 3.11

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2023/02/05 11:33

request.index ではなく request.form ではないでしょうか。 print(str(request.form['userid'])) print(str(request.form['passwd']))
Android-student

2023/02/05 11:50

確認できました。ありがとうございました。
guest

回答1

0

自己解決

request.index ではなく request.form に変更したところ解決致しました。

print(str(request.form['userid']))
print(str(request.form['passwd']))

ありがとうございました。

投稿2023/02/05 11:51

Android-student

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問