単一の Web ページに単一のテキスト フィールドを格納し、ユーザーが「メッセージ」フィールドを含むフォームを表示する単純な Flask アプリを作成するように依頼されました。フォームの下には、データベース内の既存のメッセージのリストが表示されます。ユーザーが「メッセージ」フィールドに何かを入力してフォームを送信すると、「メッセージ」は SQLite のテーブルに保存されます。かつ メッセージが保存された後、ユーザーはフォームとメッセージ リストを含むページに戻る必要があります。
メッセージを送信できません マイページは、作成中にデータベースに既に保存されているデータベースからメッセージを取得します。
しかし、フォームに記入されたメッセージを送信するためのコードを教えてください。私の message.html コードは次のとおりです。
{% extends "template.html "%}
{% block content %}
<h2>You are in the Message Page</h2>
<br/>
<p><h4>In this page, You can view the Existing Messages and can also Submit your own message.</h4></p>
<br/><br/>
<h3>Enter Your Message:</h3><br/>
<form action="" method='POST'>
<dl>
<dt>Message:
<dd><input type="text" name=msg_msg maxlength=80 style="width:300px">*Maximum Length = 80
</dl>
<input type=submit value="Submit Message">
</form>
<h3>The Existing Messages:</h3>
{% for item in message %}
Msg_ID: <B>"{{ item.msg_id }}"</B><br/>Message: {{ item.msg_msg }} <br/><br/>
{% endfor %}
{% endblock %}
and my routes.py code for this is:
@app.route('/message')
def message():
g.db = connect_db()
cur = g.db.execute('select msg_id, msg_msg from msg')
message = [dict(msg_id=row[0], msg_msg=row[1]) for row in cur.fetchall()]
g.db.close()
return render_template('message.html', message=message)
@app.route('/message', methods=['GET', 'POST'])
def message_1():
error = None
if request.method == 'POST':
for request.form['input_msg'] = text:
g.db = connect_db()
cur = g.db.execute('insert into msg_msg from msg')
message = [dict(msg_id=row[0], msg_msg=row[1]) for row in cur.fetchall()]
g.db.close()
return render_template('message.html', message=message)
#error = 'Invalid Entry, Please Try Again.'
else:
# session['logged_in'] = True
return redirect(url_for('message'))
return render_template('message.html' , error=error)