· 6 years ago · Nov 13, 2019, 07:44 PM
1
2from selenium import webdriver
3import flask
4import time
5import os
6import shutil
7import sqlite3
8import csv
9import json
10import pandas as pd
11
12app = flask(__import__(name=teste_danzo.app))
13def teste_danzo():
14
15
16 # OPEN URL / ABRE PÁGINA
17 print('Hi! I´m DANZO. i need some Computers info to start')
18 chrome = str(input('chromedrive path: '))
19 # C:\Windows\chromedriver.exe
20 local = str(input('downloads path: '))
21 # C:\Users\wamore\Downloads
22 print('Now i need some informations about what do you want')
23
24 # RouboVeiculo
25 # FurtoVeiculo
26 # RouboCelular
27 # Latrocinio
28 selectcrime = str(input('select type of crime: '))
29 if selectcrime == 'RouboVeiculo':
30 crime = "RouboVeiculo"
31 elif selectcrime == 'FurtoVeiculo':
32 crime = "FurtoVeiculo"
33 elif selectcrime == 'RouboCelular':
34 crime = "RouboCelular"
35 elif selectcrime == 'Latrocinio':
36 crime = "Latrocinio"
37
38 selectmonth = str(input('select month: '))
39 if selectmonth == 'Janeiro':
40 month = "1"
41 elif selectmonth == 'Fevereiro':
42 month = "2"
43 elif selectmonth == 'Março':
44 month = "3"
45 elif selectmonth == 'Abril':
46 month = "4"
47 elif selectmonth == 'Maio':
48 month = "5"
49 elif selectmonth == 'Junho':
50 month = "6"
51 elif selectmonth == 'Julho':
52 month = "7"
53 elif selectmonth == 'Agosto':
54 month = "8"
55 elif selectmonth == 'Setembro':
56 month = "9"
57 elif selectmonth == 'Outubro':
58 month = "10"
59 elif selectmonth == 'Novembro':
60 month = "11"
61 elif selectmonth == 'Dezembro':
62 month = "12"
63
64 selectyear = str(input('selecione year: '))
65 if selectyear == '2015':
66 year = "15"
67 elif selectyear == '2016':
68 year = "16"
69 elif selectyear == '2017':
70 year = "17"
71 elif selectyear == '2018':
72 year = "18"
73 elif selectyear == '2019':
74 year = "19"
75 elif selectyear == '2020':
76 year = "20"
77 print('Now i will open the URL to find the archives')
78 url = 'http://www.ssp.sp.gov.br/transparenciassp/Consulta.aspx'
79 # driver = webdriver.Chrome(executable_path='https://sites.google.com/a/chromium.org/chromedriver/downloads')
80 # o local do chromedriver.exe varia de pc para pc, se possivel alocar conforme linha abaixo
81 driver = webdriver.Chrome(executable_path=chrome)
82 driver.get(url)
83 driver.maximize_window()
84 driver.implicitly_wait(3)
85
86 name = "20" + year + "_" + month + ""
87
88 print('Now, I´m choosing the criteria give 4 u.')
89 driver.find_element_by_xpath("//*[@id='cphBody_btn" + str(crime) + "']").click()
90 driver.implicitly_wait(1)
91 driver.find_element_by_xpath("//*[@id='cphBody_filtroDepartamento']").send_keys("DEINTER 1 - SAO JOSE DOS CAMPOS")
92 driver.implicitly_wait(1)
93 driver.find_element_by_xpath("//*[@id='cphBody_filtroSeccional']").send_keys("DEL.SEC.S.JOSÉ DOS CAMPOS")
94 driver.implicitly_wait(1)
95 driver.find_element_by_xpath("//*[@id='cphBody_filtroDelegacia']").send_keys("05° D.P. S.JOSE DOS CAMPOS")
96 driver.implicitly_wait(1)
97 driver.find_element_by_xpath("//*[@id='cphBody_lkAno" + str(year) + "']").click()
98 driver.implicitly_wait(1)
99 driver.find_element_by_xpath("//*[@id='cphBody_lkMes" + str(month) + "']").click()
100 driver.implicitly_wait(1)
101 driver.find_element_by_xpath("//*[@id='cphBody_ExportarBOLink']").click()
102 driver.implicitly_wait(1)
103 time.sleep(3)
104
105 # fechar a página web
106 driver.close()
107
108 # criando o diretório para armazenar os dados:
109 print('Creating a folder...')
110 danzo = r'C:\DANZO'
111 try:
112 os.mkdir(danzo)
113 except FileExistsError as e:
114 print('A pasta DANZO já foi criada!')
115 repository = r'C:\DANZO\repository'
116 time.sleep(3)
117 try:
118 os.mkdir(repository)
119 except FileExistsError as e:
120 print('A pasta repository já foi criada!')
121 time.sleep(3)
122
123 if crime == 'RouboVeiculo':
124 crime = "ROUBO DE VEÍCULOS"
125 elif crime == 'FurtoVeiculo':
126 crime = "FURTO DE VEÍCULOS"
127 elif crime == 'RouboCelular':
128 crime = "ROUBO DE CELULAR"
129 elif crime == 'Latrocinio':
130 crime = "LATROCÍNIO"
131
132 # enviando arquivos para o diretório
133 download = '' + str(local) + '\DadosBO_' + str(name) + '(' + str(crime) + ').xls'
134 diretory = '' + str(repository) + '\DadosBO_' + str(name) + '(' + str(crime) + ').xls'
135 shutil.move(download, diretory)
136 time.sleep(3)
137 print('folder OK!')
138
139 # criando banco de dados
140 conn = sqlite3.connect(danzo + '\database.db')
141 cursor = conn.cursor()
142
143
144 def select_all(conn):
145
146 #Query all rows in the tasks table
147 #:param conn: the Connection object
148 #:return:
149
150 cur = conn.cursor()
151 cur.execute("SELECT * FROM RouboVeiculo")
152
153 rows = cur.fetchall()
154
155 lista = []
156 for row in rows:
157 lista.append(row)
158
159 jsonDadosBanco = json.dumps(lista)
160 print(jsonDadosBanco)
161
162 # para iniciar o servidor local (localhost) escreva o seguinte comando no terminal do windows (cmd): python -m http.server
163 # para acessar o localhost, entre no seu navegador no localhost:8000 (porta 8000 padrao web local)
164
165 # criando as tabelas no banco de dados e buscando informações de acordo com o tipo de crime
166
167 if crime == "ROUBO DE VEÍCULOS":
168 cursor.execute(
169 "CREATE TABLE IF NOT EXISTS RouboVeiculo (ano_bo,num_bo,numero_boletim,bo_iniciado,bo_emitido,dataocorrencia,peridoocorrencia,datacomunicacao,dataelaboracao,bo_autoria,flagrante,numero_boletim_principal,logradouro,numero,bairro,cidade,uf,latitude,longitude,descricaolocal,exame,solucao,delegacia_nome,delegacia_circunscricao,especie,rubrica,desdobramento,status,nomepessoa,tipopessoa,vitimafatal,rg,rg_uf,naturalidade,nacionalidade,sexo,datanascimento,idade,estadocivil,profissao,grauinstrucao,corcutis,naturezavinculada,tipovinculo,relacionamento,parentesco,placa_veiculo,uf_veiculo,cidade_veiculo,descr_cor_veiculo,descr_marca_veiculo,ano_fabricacao,ano_modelo,descr_tipo_veiculo,quant_celular,marca_celular);")
170 # tratando o arquivo
171 f = open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').xls')
172 f = f.read()
173 f = f.lower().replace('\x00', '').replace(' ', '_').replace('\t', ";")
174 n = len(f)
175 arquivo = open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv', 'w')
176 arquivo.write(f)
177 arquivo.close()
178 with open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv') as File:
179 reader = csv.reader(File, delimiter=';')
180 for coluna in reader:
181 lista = [(coluna[0]), (coluna[1]), (coluna[2]), (coluna[3]), (coluna[4]), (coluna[5]), (coluna[6]),
182 (coluna[7]), (coluna[8]), (coluna[9]), (coluna[10]), (coluna[11]), (coluna[12]), (coluna[13]),
183 (coluna[14]), (coluna[15]), (coluna[16]), (coluna[17]), (coluna[18]), (coluna[19]), (coluna[20]),
184 (coluna[21]), (coluna[22]), (coluna[23]), (coluna[24]), (coluna[25]), (coluna[26]), (coluna[27]),
185 (coluna[28]), (coluna[29]), (coluna[30]), (coluna[31]), (coluna[32]), (coluna[33]), (coluna[34]),
186 (coluna[35]), (coluna[36]), (coluna[37]), (coluna[38]), (coluna[39]), (coluna[40]), (coluna[41]),
187 (coluna[42]), (coluna[43]), (coluna[44]), (coluna[45]), (coluna[46]), (coluna[47]), (coluna[48]),
188 (coluna[49]), (coluna[50]), (coluna[51]), (coluna[52]), (coluna[53]), (coluna[54]), (coluna[55])]
189 cursor.execute("""INSERT INTO RouboVeiculo (ano_bo,num_bo,numero_boletim,bo_iniciado,bo_emitido,dataocorrencia,peridoocorrencia,datacomunicacao,dataelaboracao,bo_autoria,flagrante,numero_boletim_principal,logradouro,numero,bairro,cidade,uf,latitude,longitude,descricaolocal,exame,solucao,delegacia_nome,delegacia_circunscricao,especie,rubrica,desdobramento,status,nomepessoa,tipopessoa,vitimafatal,rg,rg_uf,naturalidade,nacionalidade,sexo,datanascimento,idade,estadocivil,profissao,grauinstrucao,corcutis,naturezavinculada,tipovinculo,relacionamento,parentesco,placa_veiculo,uf_veiculo,cidade_veiculo,descr_cor_veiculo,descr_marca_veiculo,ano_fabricacao,ano_modelo,descr_tipo_veiculo,quant_celular,marca_celular)
190 VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);""",
191 lista)
192 conn.commit()
193 # excluindo .xls e .csv
194 myfile = repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').xls'
195 ## If file exists, delete it ##
196 if os.path.isfile(myfile):
197 os.remove(myfile)
198 else: ## Show an error ##
199 print("Error: %s file not found" % myfile)
200 myfile = repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv'
201 ## If file exists, delete it ##
202 if os.path.isfile(myfile):
203 os.remove(myfile)
204 else: ## Show an error ##
205 print("Error: %s file not found" % myfile)
206
207 elif crime == 'FURTO DE VEÍCULOS':
208 cursor.execute(
209 "CREATE TABLE IF NOT EXISTS FurtoVeiculo (ano_bo,num_bo,numero_boletim,bo_iniciado,bo_emitido,dataocorrencia,peridoocorrencia,datacomunicacao,dataelaboracao,bo_autoria,flagrante,numero_boletim_principal,logradouro,numero,bairro,cidade,uf,latitude,longitude,descricaolocal,exame,solucao,delegacia_nome,delegacia_circunscricao,especie,rubrica,desdobramento,status,nomepessoa,tipopessoa,vitimafatal,rg,rg_uf,naturalidade,nacionalidade,sexo,datanascimento,idade,estadocivil,profissao,grauinstrucao,corcutis,naturezavinculada,tipovinculo,relacionamento,parentesco,placa_veiculo,uf_veiculo,cidade_veiculo,descr_cor_veiculo,descr_marca_veiculo,ano_fabricacao,ano_modelo,descr_tipo_veiculo,quant_celular,marca_celular);")
210 # tratando o arquivo
211 f = open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').xls')
212 f = f.read()
213 f = f.lower().replace('\x00', '').replace(' ', '_').replace('\t', ";")
214 n = len(f)
215 arquivo = open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv', 'w')
216 arquivo.write(f)
217 arquivo.close()
218 with open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv') as File:
219 reader = csv.reader(File, delimiter=';')
220 for coluna in reader:
221 lista = [(coluna[0]), (coluna[1]), (coluna[2]), (coluna[3]), (coluna[4]), (coluna[5]), (coluna[6]),
222 (coluna[7]), (coluna[8]), (coluna[9]), (coluna[10]), (coluna[11]), (coluna[12]), (coluna[13]),
223 (coluna[14]), (coluna[15]), (coluna[16]), (coluna[17]), (coluna[18]), (coluna[19]), (coluna[20]),
224 (coluna[21]), (coluna[22]), (coluna[23]), (coluna[24]), (coluna[25]), (coluna[26]), (coluna[27]),
225 (coluna[28]), (coluna[29]), (coluna[30]), (coluna[31]), (coluna[32]), (coluna[33]), (coluna[34]),
226 (coluna[35]), (coluna[36]), (coluna[37]), (coluna[38]), (coluna[39]), (coluna[40]), (coluna[41]),
227 (coluna[42]), (coluna[43]), (coluna[44]), (coluna[45]), (coluna[46]), (coluna[47]), (coluna[48]),
228 (coluna[49]), (coluna[50]), (coluna[51]), (coluna[52]), (coluna[53]), (coluna[54]), (coluna[55])]
229 cursor.execute("""INSERT INTO FurtoVeiculo (ano_bo,num_bo,numero_boletim,bo_iniciado,bo_emitido,dataocorrencia,peridoocorrencia,datacomunicacao,dataelaboracao,bo_autoria,flagrante,numero_boletim_principal,logradouro,numero,bairro,cidade,uf,latitude,longitude,descricaolocal,exame,solucao,delegacia_nome,delegacia_circunscricao,especie,rubrica,desdobramento,status,nomepessoa,tipopessoa,vitimafatal,rg,rg_uf,naturalidade,nacionalidade,sexo,datanascimento,idade,estadocivil,profissao,grauinstrucao,corcutis,naturezavinculada,tipovinculo,relacionamento,parentesco,placa_veiculo,uf_veiculo,cidade_veiculo,descr_cor_veiculo,descr_marca_veiculo,ano_fabricacao,ano_modelo,descr_tipo_veiculo,quant_celular,marca_celular)
230 VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);""",
231 lista)
232 conn.commit()
233 # excluindo .xls e .csv
234 myfile = repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').xls'
235 ## If file exists, delete it ##
236 if os.path.isfile(myfile):
237 os.remove(myfile)
238 else: ## Show an error ##
239 print("Error: %s file not found" % myfile)
240 myfile = repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv'
241 ## If file exists, delete it ##
242 if os.path.isfile(myfile):
243 os.remove(myfile)
244 else: ## Show an error ##
245 print("Error: %s file not found" % myfile)
246
247 elif crime == 'ROUBO DE CELULAR':
248 cursor.execute(
249 "CREATE TABLE IF NOT EXISTS RouboCelular (ano_bo,num_bo,numero_boletim,bo_iniciado,bo_emitido,dataocorrencia,peridoocorrencia,datacomunicacao,dataelaboracao,bo_autoria,flagrante,numero_boletim_principal,logradouro,numero,bairro,cidade,uf,latitude,longitude,descricaolocal,exame,solucao,delegacia_nome,delegacia_circunscricao,especie,rubrica,desdobramento,status,nomepessoa,tipopessoa,vitimafatal,rg,rg_uf,naturalidade,nacionalidade,sexo,datanascimento,idade,estadocivil,profissao,grauinstrucao,corcutis,naturezavinculada,tipovinculo,relacionamento,parentesco,placa_veiculo,uf_veiculo,cidade_veiculo,descr_cor_veiculo,descr_marca_veiculo,ano_fabricacao,ano_modelo,descr_tipo_veiculo,quant_celular,marca_celular);")
250 # tratando o arquivo
251 f = open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').xls')
252 f = f.read()
253 f = f.lower().replace('\x00', '').replace(' ', '_').replace('\t', ";")
254 n = len(f)
255 arquivo = open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv', 'w')
256 arquivo.write(f)
257 arquivo.close()
258 with open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv') as File:
259 reader = csv.reader(File, delimiter=';')
260 for coluna in reader:
261 lista = [(coluna[0]), (coluna[1]), (coluna[2]), (coluna[3]), (coluna[4]), (coluna[5]), (coluna[6]),
262 (coluna[7]), (coluna[8]), (coluna[9]), (coluna[10]), (coluna[11]), (coluna[12]), (coluna[13]),
263 (coluna[14]), (coluna[15]), (coluna[16]), (coluna[17]), (coluna[18]), (coluna[19]), (coluna[20]),
264 (coluna[21]), (coluna[22]), (coluna[23]), (coluna[24]), (coluna[25]), (coluna[26]), (coluna[27]),
265 (coluna[28]), (coluna[29]), (coluna[30]), (coluna[31]), (coluna[32]), (coluna[33]), (coluna[34]),
266 (coluna[35]), (coluna[36]), (coluna[37]), (coluna[38]), (coluna[39]), (coluna[40]), (coluna[41]),
267 (coluna[42]), (coluna[43]), (coluna[44]), (coluna[45]), (coluna[46]), (coluna[47]), (coluna[48]),
268 (coluna[49]), (coluna[50]), (coluna[51]), (coluna[52]), (coluna[53]), (coluna[54]), (coluna[55])]
269 cursor.execute("""INSERT INTO RouboCelular (ano_bo,num_bo,numero_boletim,bo_iniciado,bo_emitido,dataocorrencia,peridoocorrencia,datacomunicacao,dataelaboracao,bo_autoria,flagrante,numero_boletim_principal,logradouro,numero,bairro,cidade,uf,latitude,longitude,descricaolocal,exame,solucao,delegacia_nome,delegacia_circunscricao,especie,rubrica,desdobramento,status,nomepessoa,tipopessoa,vitimafatal,rg,rg_uf,naturalidade,nacionalidade,sexo,datanascimento,idade,estadocivil,profissao,grauinstrucao,corcutis,naturezavinculada,tipovinculo,relacionamento,parentesco,placa_veiculo,uf_veiculo,cidade_veiculo,descr_cor_veiculo,descr_marca_veiculo,ano_fabricacao,ano_modelo,descr_tipo_veiculo,quant_celular,marca_celular)
270 VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);""",
271 lista)
272 conn.commit()
273 # excluindo .xls e .csv
274 myfile = repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').xls'
275 ## If file exists, delete it ##
276 if os.path.isfile(myfile):
277 os.remove(myfile)
278 else: ## Show an error ##
279 print("Error: %s file not found" % myfile)
280 myfile = repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv'
281 ## If file exists, delete it ##
282 if os.path.isfile(myfile):
283 os.remove(myfile)
284 else: ## Show an error ##
285 print("Error: %s file not found" % myfile)
286
287
288 elif crime == 'LATROCÍNIO':
289 cursor.execute(
290 "CREATE TABLE IF NOT EXISTS Latrocinio (ano_bo,num_bo,numero_boletim,bo_iniciado,bo_emitido,dataocorrencia,peridoocorrencia,datacomunicacao,dataelaboracao,bo_autoria,flagrante,numero_boletim_principal,logradouro,numero,bairro,cidade,uf,latitude,longitude,descricaolocal,exame,solucao,delegacia_nome,delegacia_circunscricao,especie,rubrica,desdobramento,status,nomepessoa,tipopessoa,vitimafatal,rg,rg_uf,naturalidade,nacionalidade,sexo,datanascimento,idade,estadocivil,profissao,grauinstrucao,corcutis,naturezavinculada,tipovinculo,relacionamento,parentesco,placa_veiculo,uf_veiculo,cidade_veiculo,descr_cor_veiculo,descr_marca_veiculo,ano_fabricacao,ano_modelo,descr_tipo_veiculo,quant_celular,marca_celular);")
291 # tratando o arquivo
292 f = open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').xls')
293 f = f.read()
294 f = f.lower().replace('\x00', '').replace(' ', '_').replace('\t', ";")
295 n = len(f)
296 arquivo = open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv', 'w')
297 arquivo.write(f)
298 arquivo.close()
299 with open(repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv') as File:
300 reader = csv.reader(File, delimiter=';')
301 for coluna in reader:
302 lista = [(coluna[0]), (coluna[1]), (coluna[2]), (coluna[3]), (coluna[4]), (coluna[5]), (coluna[6]),
303 (coluna[7]), (coluna[8]), (coluna[9]), (coluna[10]), (coluna[11]), (coluna[12]), (coluna[13]),
304 (coluna[14]), (coluna[15]), (coluna[16]), (coluna[17]), (coluna[18]), (coluna[19]), (coluna[20]),
305 (coluna[21]), (coluna[22]), (coluna[23]), (coluna[24]), (coluna[25]), (coluna[26]), (coluna[27]),
306 (coluna[28]), (coluna[29]), (coluna[30]), (coluna[31]), (coluna[32]), (coluna[33]), (coluna[34]),
307 (coluna[35]), (coluna[36]), (coluna[37]), (coluna[38]), (coluna[39]), (coluna[40]), (coluna[41]),
308 (coluna[42]), (coluna[43]), (coluna[44]), (coluna[45]), (coluna[46]), (coluna[47]), (coluna[48]),
309 (coluna[49]), (coluna[50]), (coluna[51]), (coluna[52]), (coluna[53]), (coluna[54]), (coluna[55])]
310 cursor.execute("""INSERT INTO Latrocinio (ano_bo,num_bo,numero_boletim,bo_iniciado,bo_emitido,dataocorrencia,peridoocorrencia,datacomunicacao,dataelaboracao,bo_autoria,flagrante,numero_boletim_principal,logradouro,numero,bairro,cidade,uf,latitude,longitude,descricaolocal,exame,solucao,delegacia_nome,delegacia_circunscricao,especie,rubrica,desdobramento,status,nomepessoa,tipopessoa,vitimafatal,rg,rg_uf,naturalidade,nacionalidade,sexo,datanascimento,idade,estadocivil,profissao,grauinstrucao,corcutis,naturezavinculada,tipovinculo,relacionamento,parentesco,placa_veiculo,uf_veiculo,cidade_veiculo,descr_cor_veiculo,descr_marca_veiculo,ano_fabricacao,ano_modelo,descr_tipo_veiculo,quant_celular,marca_celular)
311 VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);""",
312 lista)
313 conn.commit()
314 # excluindo .xls e .csv
315 myfile = repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').xls'
316 ## If file exists, delete it ##
317 if os.path.isfile(myfile):
318 os.remove(myfile)
319 else: ## Show an error ##
320 print("Error: %s file not found" % myfile)
321 myfile = repository + '\DadosBO_' + str(name) + '(' + str(crime) + ').csv'
322 ## If file exists, delete it ##
323 if os.path.isfile(myfile):
324 os.remove(myfile)
325 else: ## Show an error ##
326 print("Error: %s file not found" % myfile)
327
328 print("Finalizado.")
329
330 return(select_all(conn)
331
332 app.run