Skip to content

Commit a2a2c38

Browse files
committed
Finished developing the app
1 parent 59a0101 commit a2a2c38

File tree

26 files changed

+372
-123
lines changed

26 files changed

+372
-123
lines changed
Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from flask import Flask, render_template, request, redirect, url_for
2-
from forms import FormToReverse
2+
from project.forms import FormToReverse
33

4-
# Creating instances
54
app = Flask(__name__)
65
app.config.from_object('project.config')
76

@@ -13,23 +12,26 @@ def reverse(string):
1312
@app.route('/', methods=['GET', 'POST'])
1413
def index():
1514
form = FormToReverse(request.form)
16-
if request.method == 'POST' and form.validate_on_submit():
17-
return redirect(url_for('rev_str'))
18-
return render_template('index.html')
15+
if form.validate_on_submit():
16+
return redirect(url_for('rev_str', user_input=form.reverse.data))
17+
return render_template('index.html', form=form)
18+
19+
20+
@app.route('/reversed_input/<user_input>')
21+
def rev_str(user_input):
22+
reversed_string = reverse(user_input)
23+
return render_template(
24+
'reversed.html',
25+
user_input=user_input,
26+
rev_input=reversed_string
27+
)
1928

20-
@app.route('/reversed/', methods=['POST'])
21-
def rev_str():
22-
rev_string = reverse(request.form['user_input'])
23-
return render_template('reversed.html', output = rev_string, user_input=request.form['user_input'])
2429

2530
@app.errorhandler(404)
2631
def page_not_found(error):
27-
return render_template('404.html'),404
32+
return render_template("404.html"), 404
2833

29-
@app.errorhandler(500)
30-
def server_error(error):
31-
return render_template('500.html'),500
3234

33-
34-
if __name__=='__main__':
35-
app.run(debug=True)
35+
@app.errorhandler(500)
36+
def server_error_page(error):
37+
return render_template("500.html"), 500
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
1+
# config.py
22

33
WTF_CSRF_ENABLED = True
4-
SECRET_KEY = "You know what"
5-
4+
SECRET_KEY = "secret"

part2/reverse_flask_reza/project/forms.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from wtforms import StringField
33
from wtforms.validators import DataRequired, Length
44

5-
class FormToReverse(Form):
6-
string = StringField('reverse', validators=[DataRequired(), Length(min=4)])
7-
85

6+
class FormToReverse(Form):
7+
reverse = StringField('Reverse', validators=[DataRequired(), Length(min=2)])

part2/reverse_flask_reza/project/static/css/bootstrap.min.css

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
body {
2+
padding-top: 60px;
3+
padding-bottom: 40px;
4+
background-color: #eee;
5+
}
6+
7+
.container {
8+
width: auto;
9+
max-width: 680px;
10+
padding: 0 15px;
11+
}
12+
13+
.center {
14+
padding: 40px 15px;
15+
text-align: center;
16+
}
Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,7 @@
1-
<!DOCTYPE html>
2-
3-
<html>
4-
<head>
5-
<title>Reversing string.</title>
6-
<link href="{{ url_for('static', filename='css/main.css') }}" rel="stylesheet">
7-
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
8-
9-
</head>
10-
<div class="container">
11-
12-
<h1>Error 404</h1>
13-
<p><em>Try<a href="{{url_for('index')}}">again.</a></em></p>
14-
15-
</div>
16-
17-
</html>
1+
{% extends "base_template.html" %}
2+
{% block content %}
3+
<div class="center">
4+
<h1>Error 404</h1>
5+
<p><em>Try <a href="{{url_for('index')}}">again</a>?</em></p>
6+
</div>
7+
{% endblock %}
Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,8 @@
1-
<!DOCTYPE html>
1+
{% extends "base_template.html" %}
2+
{% block content %}
3+
<div class="center">
24

3-
<html>
4-
<head>
5-
<title>Reversing string.</title>
6-
<link href="{{ url_for('static', filename='css/main.css') }}" rel="stylesheet">
7-
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
8-
9-
</head>
10-
<div class="container">
11-
<h1>500</h1>
12-
<p>Something is wrong! We are working on it!</p>
13-
<p><em>Return<a href="{{url_for('home')}}">Home.</a></em></p>
14-
</div>
15-
16-
</html>
5+
<h1>Error 500</h1>
6+
<p><em>Try <a href="{{url_for('home')}}">again</a>?</em></p>
7+
</div>
8+
{% endblock %}

part2/reverse_flask_reza/project/templates/base.html

Whitespace-only changes.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
<!DOCTYPE html>
3+
<html lang="en">
4+
<head>
5+
<meta charset="utf-8">
6+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
7+
<meta name="viewport" content="width=device-width, initial-scale=1">
8+
<meta name="description" content="">
9+
<meta name="author" content="">
10+
<link rel="icon" href="../../favicon.ico">
11+
12+
<title>Reverse your string!</title>
13+
14+
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
15+
<link href="{{ url_for('static', filename='css/main.css') }}" rel="stylesheet">
16+
17+
</head>
18+
19+
<body>
20+
21+
<div class="navbar navbar-inverse navbar-fixed-top">
22+
<div class="navbar-header">
23+
<a class="navbar-brand" href="#">Just a simple string reverser! </a>
24+
</div>
25+
</div>
26+
27+
28+
{% block content %}
29+
30+
31+
{% endblock %}
32+
33+
34+
</body>
35+
</html>
Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
1-
<!DOCTYPE html>
1+
{% extends('base_template.html') %}
22

3-
<html>
4-
<head>
5-
<title>Reversing string.</title>
6-
<link href="{{ url_for('static', filename='css/main.css') }}" rel="stylesheet">
7-
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
8-
9-
</head>
10-
<body>
11-
<div class="container">
12-
<h2>Reverse your string!</h2>
13-
<form action ="{{ url_for('rev_str') }}" method="post">
14-
<input type="text" name="user_input">
15-
<input type="submit" value="Reverse!">
16-
</form>
17-
</div>
18-
19-
20-
</body>
21-
</html>
22-
3+
{% block content %}
4+
<div class="container">
5+
<div class="center">
6+
<form class="" method="POST" action="">
7+
{{ form.csrf_token }}
8+
<div class="form-group">
9+
{{form.reverse(class="form-control input-lg", placeholder="Reverse this text")}}
10+
{% if form.reverse.errors %}
11+
{% for error in form.reverse.errors %}
12+
{{ error }}
13+
{% endfor %}
14+
{% endif %}
15+
</div>
16+
<button class="btn btn-lg btn-primary btn-block" type="submit">Submit</button>
17+
</form>
18+
</div>
19+
</div> <!-- /container -->
20+
{% endblock %}

0 commit comments

Comments
 (0)