· 5 years ago · Aug 14, 2020, 09:28 PM
1import os
2import requests
3import json
4from flask import Flask, render_template, request, redirect
5
6api_url = 'Banco de dados'
7dono = 'jojoi'
8def read_from_db():
9
10 url = f'{api_url}/{dono}.json'
11 req = requests.get(url)
12 return req.json()
13
14def overwrite_db(infos):
15 #url = f'{api_url}/{bin_ID}/'
16 #headers = {
17 # 'Content-Type': 'application/json',
18 # 'secret-key': secret_key
19 #}
20 url = f'{api_url}/{dono}.json'
21
22 #requests.put(url, json=infos, headers=headers)
23 requests.put(url, json=infos)
24
25def createeventoshtml(eventos):
26 html = "<h1>Todos os eventos</h1>"
27
28 for idx, evento in enumerate(eventos):
29 eventohtml = f'<h3>Evento {idx}'
30 iniciohtml = f'<ul><li>Hora de início: {evento[0][0]}:{evento[0][1]}</li>'
31 durhtml = f'<li>Duração: {evento[1][0]}:{evento[1][1]}</li>'
32 removehtml = f'<li><a href="/deletar/{idx}">Deletar</a></li></ul>'
33 closehtml = "</h3>"
34 html += (eventohtml + iniciohtml + durhtml + removehtml + closehtml)
35
36 htmlcriar = '<a href="/criar">Criar novo evento</a>'
37 html += htmlcriar
38
39 return html
40
41
42app = Flask(__name__)
43
44
45@app.route("/")
46def index():
47 return icon_component + "<h1>Olá, essa é a aplicação que controla a rega das plantas!</hi>" \
48 "<p>Para fins de usuários temos apenas uma rota de interesse, que é a que " \
49 "controla os eventos. Para ir até ela basta clicar no link abaixo:</p>" \
50 "<a href='/eventos'>Ir para eventos</a>"
51
52
53@app.route('/deletar/<int:eventID>')
54def deletar(eventID):
55 infos = read_from_db()
56 infos.pop(eventID)
57 overwrite_db(infos)
58
59 return redirect("/eventos", code=302)
60
61@app.route('/criar')
62def criar():
63 return """
64 <form action="/handlecriar">
65 <label for="hora">Hora de inicio:</label><br>
66 <input type="text" id="hora" name="hora" value="23:30"><br>
67 <label for="dur">Duração:</label><br>
68 <input type="text" id="dur" name="dur" value="00:30"><br><br>
69 <input type="submit" value="Criar">
70 </form>
71 """
72
73@app.route('/handlecriar')
74def handlecriar():
75 hora = request.args.get('hora').split(':')
76 dur = request.args.get('dur').split(':')
77
78 evento = [
79 [
80 int(hora[0]),
81 int(hora[1])
82 ],
83 [
84 int(dur[0]),
85 int(dur[1])
86 ]
87 ]
88
89 db = read_from_db()
90 db.append(evento)
91 overwrite_db(db)
92
93 return redirect("/eventos", code=302)
94
95@app.route('/eventos')
96def eventos():
97 infos = read_from_db()
98 return createeventoshtml(infos)
99
100@app.route('/db')
101def dbview():
102 infos = read_from_db()
103 return json.dumps(infos)