Skip to content

Commit 63a27ca

Browse files
committed
add section 26 27
1 parent 17a44bf commit 63a27ca

File tree

29 files changed

+496
-20
lines changed

29 files changed

+496
-20
lines changed

section26/application/flask_blog/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,8 @@
66

77
db = SQLAlchemy(app)
88

9-
from flask_blog.views import views, entries
9+
from flask_blog.views.entries import entry
10+
11+
app.register_blueprint(entry, url_prefix='/users')
12+
13+
from flask_blog.views import views
0 Bytes
Binary file not shown.

section26/application/flask_blog/templates/entries/edit.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% extends "layout.html" %}
22
{% block body %}
3-
<form action="{{ url_for('update_entry', id=entry.id) }}" method=post class=add-entry>
3+
<form action="{{ url_for('entry.update_entry', id=entry.id) }}" method=post class=add-entry>
44
<div class="form-group">
55
<label for="InputTitle">タイトル</label>
66
<input type="text" class="form-control" id="InputTitle" name=title value={{ entry.title }}>

section26/application/flask_blog/templates/entries/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<div class="card">
77
<div class="card-body">
88
<h5 class="card-title">{{ entry.title }}</h5>
9-
<a href="{{ url_for('show_entry', id=entry.id) }}" class="card-link">続きを読む</a>
9+
<a href="{{ url_for('entry.show_entry', id=entry.id) }}" class="card-link">続きを読む</a>
1010
</div>
1111
</div>
1212
{% else %}

section26/application/flask_blog/templates/entries/new.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% extends "layout.html" %}
22
{% block body %}
3-
<form action="{{ url_for('add_entry') }}" method=post class=add-entry>
3+
<form action="{{ url_for('entry.add_entry') }}" method=post class=add-entry>
44
<div class="form-group">
55
<label for="InputTitle">タイトル</label>
66
<input type="text" class="form-control" id="InputTitle" name=title>

section26/application/flask_blog/templates/entries/show.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ <h2>{{ entry.title }}</h2>
1111

1212

1313
<div class="btn-group">
14-
<form action="{{ url_for('edit_entry', id=entry.id) }}" method="get">
14+
<form action="{{ url_for('entry.edit_entry', id=entry.id) }}" method="get">
1515
<button type="submit" class="btn btn-secondary">編集</button>
1616
</form>
1717

18-
<form action="{{ url_for('delete_entry', id=entry.id) }}" method="post">
18+
<form action="{{ url_for('entry.delete_entry', id=entry.id) }}" method="post">
1919
<button type="submit" class="btn btn-danger" style="margin-left:5px">削除</button>
2020
</form>
2121
</div>

section26/application/flask_blog/templates/layout.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<div class="container">
1313
<nav class="navbar navbar-expand-lg navbar-light bg-light">
14-
<a class="navbar-brand" href="{{ url_for('show_entries') }}">Flask Blog</a>
14+
<a class="navbar-brand" href="{{ url_for('entry.show_entries') }}">Flask Blog</a>
1515
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false"
1616
aria-label="Toggle navigation">
1717
<span class="navbar-toggler-icon"></span>
@@ -25,7 +25,7 @@
2525
</li>
2626
{% else %}
2727
<li class="nav-item">
28-
<a class="nav-link" href="{{ url_for('new_entry') }}">新規投稿</a>
28+
<a class="nav-link" href="{{ url_for('entry.new_entry') }}">新規投稿</a>
2929
</li>
3030
<li class="nav-item">
3131
<a class="nav-link" href="{{ url_for('logout') }}">ログアウト</a>

section26/application/flask_blog/views/entries.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,18 @@
33
from flask_blog import db
44
from flask_blog.models.entries import Entry
55
from flask_blog.views.views import login_required
6+
from flask import Blueprint
67

7-
@app.route('/')
8+
entry = Blueprint('entry', __name__)
9+
10+
@entry.route('/')
811
@login_required
912
def show_entries():
1013
entries = Entry.query.order_by(Entry.id.desc()).all()
1114
return render_template('entries/index.html', entries=entries)
1215

1316

14-
@app.route('/entries', methods=['POST'])
17+
@entry.route('/entries', methods=['POST'])
1518
@login_required
1619
def add_entry():
1720
entry = Entry(
@@ -21,30 +24,30 @@ def add_entry():
2124
db.session.add(entry)
2225
db.session.commit()
2326
flash('新しく記事が作成されました')
24-
return redirect(url_for('show_entries'))
27+
return redirect(url_for('entry.show_entries'))
2528

2629

27-
@app.route('/entries/new', methods=['GET'])
30+
@entry.route('/entries/new', methods=['GET'])
2831
@login_required
2932
def new_entry():
3033
return render_template('entries/new.html')
3134

3235

33-
@app.route('/entries/<int:id>', methods=['GET'])
36+
@entry.route('/entries/<int:id>', methods=['GET'])
3437
@login_required
3538
def show_entry(id):
3639
entry = Entry.query.get(id)
3740
return render_template('entries/show.html', entry=entry)
3841

3942

40-
@app.route('/entries/<int:id>/edit', methods=['GET'])
43+
@entry.route('/entries/<int:id>/edit', methods=['GET'])
4144
@login_required
4245
def edit_entry(id):
4346
entry = Entry.query.get(id)
4447
return render_template('entries/edit.html', entry=entry)
4548

4649

47-
@app.route('/entries/<int:id>/update', methods=['POST'])
50+
@entry.route('/entries/<int:id>/update', methods=['POST'])
4851
@login_required
4952
def update_entry(id):
5053
entry = Entry.query.get(id)
@@ -53,14 +56,14 @@ def update_entry(id):
5356
db.session.merge(entry)
5457
db.session.commit()
5558
flash('記事が更新されました')
56-
return redirect(url_for('show_entries'))
59+
return redirect(url_for('entry.show_entries'))
5760

5861

59-
@app.route('/entries/<int:id>/delete', methods=['POST'])
62+
@entry.route('/entries/<int:id>/delete', methods=['POST'])
6063
@login_required
6164
def delete_entry(id):
6265
entry = Entry.query.get(id)
6366
db.session.delete(entry)
6467
db.session.commit()
6568
flash('投稿が削除されました')
66-
return redirect(url_for('show_entries'))
69+
return redirect(url_for('entry.show_entries'))

section26/application/flask_blog/views/views.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,16 @@ def login():
2323
else:
2424
session['logged_in'] = True
2525
flash('ログインしました')
26-
return redirect(url_for('show_entries'))
26+
return redirect(url_for('entry.show_entries'))
2727
return render_template('login.html')
2828

2929

3030
@app.route('/logout')
3131
def logout():
3232
session.pop('logged_in', None)
3333
flash('ログアウトしました')
34-
return redirect(url_for('show_entries'))
34+
return redirect(url_for('entry.show_entries'))
35+
36+
@app.errorhandler(404)
37+
def non_existant_route(error):
38+
return redirect(url_for('login'))

section27/application/Pipfile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[[source]]
2+
3+
url = "https://pypi.python.org/simple"
4+
verify_ssl = true
5+
name = "pypi"
6+
7+
8+
[packages]
9+
10+
flask = "*"
11+
flask-sqlalchemy = "*"
12+
flask-script = "*"
13+
14+
15+
[dev-packages]
16+
17+
18+
19+
[requires]
20+
21+
python_version = "3.6"

0 commit comments

Comments
 (0)