-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
70 lines (58 loc) · 2.48 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from flask import Flask, request, render_template, url_for, redirect, session, flash
from flask_bootstrap import Bootstrap
from flask_moment import Moment
from datetime import datetime
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired # WTForms > 3.x, from wtforms.validators import DataRequired, less version from wtforms.validators import Required
#from flask_script import Manager
app = Flask(__name__) # Initialize the application
app.config['SECRET_KEY'] = 'difcil_para_descobrir' # pode ser salva como variavel do ambiente
bootstrap = Bootstrap(app) # Use a Bootstrap module with Jinja2 engine
moment = Moment(app)
# manager = Manager(app)
lUser = list() # uma lista para guardar os numeros inseridos na url
class NameForm(FlaskForm):
name = StringField('Qual é seu nome?', validators=[DataRequired()])
submit = SubmitField('Submit')
# Montar uma view na 'root'
"""
@app.route('/', methods=['GET'])
def index() -> str:
user_agent = request.headers.get('User-Agent')
return '<h1>Mensagem</h1>' + '<br>' + '<p>Your browser is %s </p>' % user_agent
@app.route('/user/<string:id>', methods=['GET'])
def user(id) -> dict:
lUser.append(id)
print(lUser)
return {"user": f"Ola user {id}°"}
# Outra view com uma variavel na url
"""
@app.route('/', methods=['GET', 'POST'])
def index():
# name = None -> não vai mais precisar. Usa-se session para armazenar o nome inserido no formulario
form = NameForm()
if form.validate_on_submit():
old_name = session.get('name')
if old_name is not None and old_name != form.name.data:
flash('Parece que você mudou de nome!')
# name = form.name.data
# form.name.data = ''
# POST REDIRECT / GET Pattern
session['name'] = form.name.data
form.name.data = ''
return redirect(url_for('index'))
# Vai renderizar a página inicial (Index) com o template que está na pasta: /templates/index.html
return render_template('index.html', current_time=datetime.utcnow(), form=form, name=session.get('name')), 200
@app.route('/user/<name>')
def user(name):
# Vai passar uma variável na url e renderizar o template na pasta: /templates/user.html
return render_template('user.html', name=name), 200
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
@app.errorhandler(500)
def server_internal_error(e):
return render_template('500.html'), 500
if __name__ == '__main__': # Se rodar o programa pelo comando "python index.py", vai iniciar a aplicação
app.run()