演習課題「入力したレビューを保存しよう」
ここでは、マンガや動画などの感想を書き込むレビューログを作っています。
右の環境には、MySQLで「mylog」というデータベースと、Flaskを使用したWebアプリケーションの雛形が用意してあります。
このうちのreview.pyを修正して、入力した内容をデータベースに保存できるようにしてください。なお、保存後は、作成したレビューの詳細画面を表示します。
- 新規レビューのルート: /create
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
演習課題「レビューを削除しよう」
ここでは、マンガや動画などの感想を書き込むレビューログを作っています。
右の環境には、MySQLで「mylog」というデータベースと、Flaskを使用したWebアプリケーションの雛形が用意してあります。
このうちのreview.pyを修正して、レビュー記事を削除できるようにしてください。なお、削除後は、レビューの一覧画面を表示します。
- レビュー削除のルート: /destroy/<int:id>
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
#07:メモを保存しよう
ここでは、新しいメモを保存する機能を作ります。新規画面で「/create」を呼び出してデータベースに保存しましょう。また、詳細画面で「/destroy」にアクセスしたら、そのメモを削除します。
mymemo/memo_app.py@app.route('/create', methods=['POST'])
def create_post():
message = 'Create new memo'
new_post = Post()
new_post.title = request.form['title']
new_post.content = request.form['content']
db.session.add(new_post)
db.session.commit()
post = Post.query.get(new_post.id)
return render_template('show.html', message = message, post = post)
mymemo/memo_app.py@app.route('/destroy/<int:id>')
def destroy_post(id):
message = 'Destroy your memo ' + str(id)
destroy_post = Post.query.get(id)
db.session.delete(destroy_post)
db.session.commit()
posts = Post.query.all()
return render_template('list.html', message = message, posts = posts)
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='/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