Есть ли способ вызвать функцию (в другом файле python) и получить тот же результат в Django view
Я пытаюсь получить возврат из функции, которая находится в similarity.py (имя функции returnTablewithURL) в Views.py. Когда я печатаю переменную df в similarity.py, она выдает результат в виде dataframe. Например, так:
Similarity (%)
https://en.wikipedia.org/wiki/The_quick_brown_f... 0.876818
https://knowyourphrase.com/the-quick-brown-fox 2.371295
Я хочу получить такой же вывод для функции fileupload в файле views.py. Поэтому я попытался вызвать функцию из views (то есть из функции fileupload), но она показывает что-то в цифрах. Вывод (с помощью оператора print, чтобы проверить, одинаковый ли он):
<function returnTableWithURL at 0x000001D3631311F0>
Я пробовал некоторые другие методы, но тщетно. Было бы очень полезно, если бы я мог воспользоваться некоторыми предложениями и помощью
Views.py:
def fileupload(request):
# Handel file upload
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
#Process for handeling the file snd store it on mongodb
newdoc = Document(docfile = request.FILES['docfile'])
#Contain process for extracting data in a file and storing them in DB as textfield
newdoc.fileData = request.FILES['docfile'].read()
newdoc.username = request.user
newdoc.save()
# Redirect to the document list after post
result(newdoc.fileData)
# Here i am trying to get the result from
# returnTableWithURL function. This function is in
# another python
dframe = returnTableWithURL
print(dframe)
return render(request, 'report.html',{'df':
dframe})
else:
form = DocumentForm() #A empty, unbound form
# Load documents for the list page
documents = Document.objects.filter(username=request.user)
# Render list page with the documents and the form
return render(request,
'home.html',
{'documents': documents, 'form': form})
Вот функция и файл python. Функция принимает параметр.
Similarity.py
def returnTableWithURL(dictionary):
df = pd.DataFrame({'Similarity (%)':dictionary})
print(df)
return df
Вот HTML-страница, на которой я хочу показать фрейм данных
report.html
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Plagirism Report</title>
</head>
<body>
{{ df }}
</body>
</html>
Хорошо, я не смог сделать это в обычном процессе, например, вызвав переменную df, но я добился успеха, используя json. Я следовал этому решению https://www.geeksforgeeks.org/rendering-data-frame-to-html-template-in-table-view-using-django-framework/
Надеюсь, это поможет другим