Skip to content

Commit 4a22cd2

Browse files
author
nubianMONK
committed
Reverse Flask Commit
1 parent d892b32 commit 4a22cd2

File tree

9 files changed

+196
-0
lines changed

9 files changed

+196
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
from flask import Flask, render_template, request, redirect, url_for,flash,session
2+
from flask.ext.session import Session
3+
from flask.ext.bootstrap import Bootstrap
4+
from flask.ext.wtf import Form
5+
from flask_wtf.csrf import CsrfProtect
6+
from wtforms import StringField, SubmitField
7+
from wtforms.validators import Required
8+
9+
10+
11+
app = Flask(__name__)
12+
app.config['SECRET_KEY'] = 'hard to guess string'
13+
bootstrap = Bootstrap(app)
14+
CsrfProtect(app)
15+
reverse_flask_session = Session
16+
17+
18+
class Reverse_Flask_Form(Form):
19+
20+
form_string = StringField('Please input a string', validators=[Required()])
21+
form_submit = SubmitField('Submit')
22+
23+
def reverse(str):
24+
str_reverse_list = str.split()
25+
str_reverse_list.reverse()
26+
str_reverse = ' '.join(str_reverse_list)
27+
return str_reverse
28+
29+
30+
@app.errorhandler(403)
31+
def page_forbidden(e):
32+
return render_template('403.html'), 403
33+
34+
#@app.errorhandler(404)
35+
def page_not_found(e):
36+
return render_template('404.html'), 404
37+
38+
39+
@app.errorhandler(500)
40+
def internal_server_error(e):
41+
return render_template('500.html'), 500
42+
43+
44+
@app.route('/', methods=['GET', 'POST'])
45+
def reverse_string_post():
46+
form = Reverse_Flask_Form()
47+
if form.validate_on_submit():
48+
49+
input_string =form.form_string.data
50+
51+
52+
return redirect(url_for('reversed_string', entry = input_string ))
53+
54+
return render_template('entry_flask.html', form=form)
55+
56+
@app.route('/reversed_entry/<entry>')
57+
def reversed_string(entry):
58+
r_string = reverse(entry)
59+
return render_template('reverse.html', original=entry, transformed = r_string)
60+
61+
62+
63+
64+
65+
if __name__ == '__main__':
66+
67+
app.debug = True
68+
app.run()
1.12 KB
Binary file not shown.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{% extends "base.html" %}
2+
3+
{% block title %}Suitor Flask - Forbidden{% endblock %}
4+
5+
{% block page_content %}
6+
<div class="page-header">
7+
<h1>Forbidden</h1>
8+
</div>
9+
{% endblock %}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{% extends "base.html" %}
2+
3+
{% block title %}Suitor Flask - Page Not Found{% endblock %}
4+
5+
{% block page_content %}
6+
<div class="page-header">
7+
<h1>Not Found</h1>
8+
</div>
9+
{% endblock %}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{% extends "base.html" %}
2+
3+
{% block title %}Suitor Flask - Internal Server Error{% endblock %}
4+
5+
{% block page_content %}
6+
<div class="page-header">
7+
<h1>Internal Server Error</h1>
8+
</div>
9+
{% endblock %}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{% extends "bootstrap/base.html" %}
2+
3+
{% block title %}Reverse Flask{% endblock %}
4+
5+
{% block head %}
6+
{{ super() }}
7+
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
8+
<link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
9+
{% endblock %}
10+
11+
{% block navbar %}
12+
<div class="navbar navbar-inverse" role="navigation">
13+
<div class="container">
14+
<div class="navbar-header">
15+
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
16+
<span class="sr-only">Toggle navigation</span>
17+
<span class="icon-bar"></span>
18+
<span class="icon-bar"></span>
19+
<span class="icon-bar"></span>
20+
</button>
21+
<a class="navbar-brand" href="https://github.com/nubianMONK/python-devtest/tree/master/part2/reverse_flask_akinkunmi">Reverse Flask</a>
22+
</div>
23+
<div class="navbar-collapse collapse">
24+
<ul class="nav navbar-nav">
25+
<li><a href="/">Home</a></li>
26+
</ul>
27+
</div>
28+
</div>
29+
</div>
30+
{% endblock %}
31+
32+
{% block content %}
33+
<div class="container">
34+
{% for message in get_flashed_messages() %}
35+
<div class="alert alert-warning">
36+
<button type="button" class="close" data-dismiss="alert">&times;</button>
37+
{{ message }}
38+
</div>
39+
{% endfor %}
40+
41+
{% block page_content %}{% endblock %}
42+
</div>
43+
{% endblock %}
44+
45+
{% block scripts %}
46+
{{ super() }}
47+
{% endblock %}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
3+
{% extends "base.html" %}
4+
{% import "bootstrap/wtf.html" as wtf %}
5+
6+
{% block title %}Reverse Flask{% endblock %}
7+
8+
{% block page_content %}
9+
<div class="page-header">
10+
<h1>Reverse a string entry</h1>
11+
</div>
12+
{{ wtf.quick_form(form) }}
13+
{% endblock %}
14+
15+
16+
17+
18+
19+
20+
21+
22+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!doctype html>
2+
<title>My Application</title>
3+
{% block body %}{% endblock %}
4+
{% with messages = get_flashed_messages() %}
5+
{% if messages %}
6+
<ul class=flashes>
7+
{% for message in messages %}
8+
<li>{{ message }}</li>
9+
{% endfor %}
10+
</ul>
11+
{% endif %}
12+
{% endwith %}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
{% extends "base.html" %}
3+
{% import "bootstrap/wtf.html" as wtf %}
4+
5+
{% block title %}Reverse Flask{% endblock %}
6+
7+
{% block page_content %}
8+
<div class="page-header">
9+
<h2>Reverse a string entry</h2>
10+
</div>
11+
<br>
12+
<h3>Entry by User</h3>
13+
<div>{{ original }} </div>
14+
<br>
15+
<h3>Reversed Entry</h3>
16+
<div>{{ transformed }} </div>
17+
18+
<br><a href=" /">Return to entry page </a>
19+
20+
{% endblock %}

0 commit comments

Comments
 (0)