У меня есть простой html шаблон со ссылкой, который запускает скрипт, в представлениях, которые извлекают данные на страницу, в файле представлений у меня есть две функции: функция визуализации def output(request):
(она извлекает данные на страницу) и другая функция. def summoner():
, который заставляет postgres зацикливаться и добавляет результаты в список. Отдельно каждый из них работает нормально, но мне нужно вызвать вторую функцию из функции рендеринга и извлечь данные на страницу, но теперь, когда я это делаю, я получаю только пустой список. введите описание изображения здесь
шаблон:
<html>
<head>
<title>
Python script
</title>
</head>
<body>
<a href="{% url 'script' %}">Execute Script</a> <hr>
{% if data %}
{{ data }}
{% endif %}
</body>
</html>
просмотров:
from django.shortcuts import render
import pandas as pd
import psycopg2
import os, glob
conn = psycopg2.connect(host='127.0.0.1', database='db',
user='user', password='pass')
cur = conn.cursor()
def insert_data_as_is(file_name):
cur.execute('truncate table test_inv.start_tbl')
with open(file_name, 'r') as file:
cur.execute("insert into test_inv.start_tbl values {0}".format(file.read()))
conn.commit()
def insert_data_to_be(file_name):
cur.execute('truncate table test_inv.res_calc_ratios_t')
with open(file_name, 'r') as file:
cur.execute('insert into test_inv.res_calc_ratios_t (test_no, test_name, hcode_id, '
'hcode_name, hcode_'
'unit_name,'
' org_id, dor_kod, duch_id, nod_id, date_type_id, metric_type_id, cargo_type_id, val_type_id,'
' unit_id, dt, value, ss, dir_id, kato_id, vids_id) values {0}'.format(file.read()))
conn.commit()
path_start = 'files/csv_s/as_is/'
start_list = []
path_finish = 'files/csv_s/to_be'
finish_list = []
for infile in glob.glob(os.path.join(path_start, '*.*')):
start_list.append(infile)
for infile in glob.glob(os.path.join(path_finish, '*.*')):
finish_list.append(infile)
def summoner():
fun_sql_set = []
fun_query = """select * from test_inv.test_ratios('1','15')"""
for i in range(len(finish_list)):
insert_data_as_is(start_list[i])
insert_data_to_be(finish_list[i])
results = pd.read_sql_query(fun_query, conn)
fun_sql_set.append(results)
return fun_sql_set
def index(request):
return render(request,'calculus/index.html')
def output(request):
data = summoner()
print(data)
return render(request,'calculus/index.html',{'data':data})