演習課題「レビュー一覧画面を作成しよう」
ここでは、マンガや動画などの感想を書き込むレビューログを作っています。
右の環境には、MySQLで「mylog」というデータベースと、Flaskを使用したWebアプリケーションの雛形が用意してあります。
このうちのreview.pyとlist.htmlを修正して、レビュー一覧画面を作成してください。一覧画面の表示には、「id」と「title」を表示します。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
#03:Flaskでデータベースに接続する
ここでは、メモ帳のサンプルデータを一覧表示する機能を作ります。FlaskとSQLAlchemyを使って、データベースに接続して、テンプレートで表示してみましょう。
mymemo/memo_app.pyfrom flask import Flask, request, render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
db_uri = 'mysql+pymysql://root:@localhost/memo?charset=utf8'
app.config['SQLALCHEMY_DATABASE_URI'] = db_uri
db = SQLAlchemy(app)
class Post(db.Model):
__tablename__ = 'posts'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.Text())
content = db.Column(db.Text())
@app.route('/')
def list():
message = 'Hello paiza memo'
posts = Post.query.all()
return render_template('list.html', message = message, posts = posts)
mymemo/templates/list.html{% extends 'layout.html' %}
{% block content %}
<h1>{{ message }}</h1>
<table>
<tr><th>ID</th><th>タイトル</th></tr>
{% for post in posts %}
<tr>
<td>{{ post.id }}</td>
<td>{{ post.title }}</td>
</tr>
{% endfor %}
</table>
<p>新規メモ</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