from flask import render_template, redirect, url_for, request, flash from blog import app, db from blog.models.entries import Entry from blog.views.auth import login_required @app.route("/") @login_required def show_entries(): entries = Entry.query.order_by(Entry.id.desc()).all() return render_template('entries/index.html', entries=entries) @app.route("/entries/new", methods=['GET']) @login_required def new_entry(): return render_template('entries/new.html') @app.route("/entries", methods=["POST"]) @login_required def add_entry(): entry = Entry( title=request.form['title'], text=request.form['text'] ) db.session.add(entry) db.session.commit() flash('新しく記事が作成されました') return redirect(url_for("show_entries")) @app.route("/entries/<int:id>", methods=["GET"]) @login_required def show_entry(id): entry = Entry.query.get(id) return render_template("entries/show.html", entry=entry) @app.route('/entries/<int:id>/edit', methods=['GET']) @login_required def edit_entry(id): entry = Entry.query.get(id) return render_template('entries/edit.html', entry=entry) @app.route("/entries/<int:id>/update", methods=['POST']) @login_required def update_entry(id): entry = Entry.query.get(id) entry.title = request.form['title'] entry.text = request.form['text'] db.session.merge(entry) db.session.commit() flash('記事が更新されました') return redirect(url_for('show_entries')) @app.route("/entries/<int:id>/delete", methods=["POST"]) @login_required def delete_entry(id): entry = Entry.query.get(id) db.session.delete(entry) db.session.commit() flash('記事が削除されました') return redirect(url_for("show_entries"))