init
This commit is contained in:
commit
5309e0593b
22 changed files with 722 additions and 0 deletions
blog/views
31
blog/views/auth.py
Normal file
31
blog/views/auth.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
from flask import render_template, request, redirect, session, flash, url_for
|
||||
from blog import app
|
||||
from functools import wraps
|
||||
|
||||
def login_required(view):
|
||||
@wraps(view)
|
||||
def inner(*args, **kwargs):
|
||||
if not session.get('logged_in'):
|
||||
return redirect(url_for('login'))
|
||||
return view(*args, **kwargs)
|
||||
return inner
|
||||
|
||||
@app.route("/login", methods=['GET', 'POST'])
|
||||
def login():
|
||||
error = None
|
||||
if request.method == 'POST':
|
||||
if request.form['username'] != app.config['USERNAME']:
|
||||
flash("ユーザー名が異なります")
|
||||
elif request.form['password'] != app.config['PASSWORD']:
|
||||
flash("パスワードが異なります")
|
||||
else:
|
||||
session['logged_in'] = True
|
||||
flash("ログインしました")
|
||||
return redirect(url_for("show_entries"))
|
||||
return render_template("login.html")
|
||||
|
||||
@app.route("/logout")
|
||||
def logout():
|
||||
session.pop('logged_in', None)
|
||||
flash("ログアウトしました")
|
||||
return redirect(url_for("show_entries"))
|
59
blog/views/entries.py
Normal file
59
blog/views/entries.py
Normal file
|
@ -0,0 +1,59 @@
|
|||
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"))
|
Loading…
Add table
Add a link
Reference in a new issue