演習課題「レビューを編集しよう」
ここでは、マンガや動画などの感想を書き込むレビューログを作っています。
右の環境には、MySQLで「mylog」というデータベースと、Flaskを使用したWebアプリケーションの雛形が用意してあります。
このうちのedit.htmlを修正して、レビュー編集画面で、現在のタイトルと本文の値を、各テキストボックスに表示してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
#08:メモを編集・保存しよう
ここでは、メモの編集・保存機能を作ります。「/edit」でアクセスしたら、メモの内容を編集フォームで表示して、「/update」でアクセスしたら、メモの内容をデータベースに保存します。
mymemo/memo_app.py@app.route('/edit/<int:id>')
def edit_post(id):
message = 'Edit your memo ' + str(id)
post = Post.query.get(id)
return render_template('edit.html', message = message, post = post)
mymemo/memo_app.py@app.route('/update/<int:id>', methods=['POST'])
def update_post(id):
message = 'Update your memo ' + str(id)
post = Post.query.get(id)
post.title = request.form['title']
post.content = request.form['content']
db.session.commit()
return render_template('show.html', message = message, post = post)
mymemo/templates/edit.html{% extends 'layout.html' %}
{% block content %}
<h1>{{ message }}</h1>
<form action="/update/{{ post.id }}" method="post">
<label for="title">タイトル</label><br>
<input type="text" name="title" value="{{ post.title }}">
<p></p>
<label for="content">本文</label><br>
<textarea name="content" cols="40" rows="10">{{ post.content}}</textarea>
<p></p>
<button type="submit">保存する</button>
<a href='/show/{{ post.id }}'>キャンセル</a>
</form>
{% endblock %}
mymemo/templates/show.html{% extends 'layout.html' %}
{% block content %}
<h1>{{ message }}</h1>
<p>タイトル:{{post.title}}</p>
{{ post.content | markdown }}
<p><a href='/'>一覧に戻る</a> | <a href='/edit/{{ post.id}}'>編集</a> | <a href='/destroy/{{ post.id}}'>削除</a></p>
{% endblock %}
- Python 言語リファレンス
https://docs.python.org/ja/3/reference/index.html
- Python3系 基礎文法 - Qiita
http://qiita.com/rohinomiya/items/aab6b16d1a470871713c
- Jinja2|Pythonテンプレートエンジン - Qiita
https://qiita.com/yasumodev/items/ae11047e2c8694867892
- SQLAlchemy入門 SQLAlchemyとは - Python学習講座
http://www.python.ambitious-engineer.com/archives/1469