#python #html #django #pandas #django-templates
#python #HTML #django #pandas #django-шаблоны
Вопрос:
Я новичок в Django и нуждаюсь в помощи views.py . Я пытаюсь вызвать переменную из views.py на моем HTML-шаблоне, но понятия не имею, как это сделать. Ниже приведен мой views.py функция:
def scheduleAlgo(request):
givenData=pd.read_csv('~OneDriveDesktopexample.csv')
df = pd.DataFrame(givenData)
df['Mean']=df.mean(axis=1)
df = df.sort_values(by="Mean", ascending=False)
df.set_index("Subject", inplace = True)
firstSubject = df.index[0]
secondSubject = df.index[1]
thirdSubject = df.index[2]
fourthSubject = df.index[3]
fifthSubject = df['Mean'].idxmin()
if fifthSubject==fourthSubject:
fourthSubject=df.index[4]
subjectList=[fifthSubject,fourthSubject,thirdSubject,secondSubject,firstSubject]
subjectSelection = random.choices(subjectList, weights=(20,18,17,16,15),k=5)
return render(request,
'main/testml.html',
{
'firstItem': subjectSelection[0],
'secondItem':subjectSelection[1],
'thirdItem':subjectSelection[2],
'fourthItem':subjectSelection[3],
'fifthItem':subjectSelection[4],
}) #assigning values for calling in template
И это мой HTML-код:
<table>
<tr>
<td>{{ firstItem }}</td>
</tr>
</table>
Кроме того, мой urls.py:
path("testml", views.scheduleAlgo, name="scheduleAlgo"),
Я совершенно уверен, что сама функция работает, поскольку я протестировал ее на ноутбуке IPython.
По сути, я хочу иметь возможность вызывать индекс из списка (subjectSelection) и отображать его в моем HTML-коде. Как мне это сделать?
Комментарии:
1. вам не нужно устанавливать каждый элемент в качестве индекса списка, вместо этого вы можете выполнить цикл в самом шаблоне, проверьте docs.djangoproject.com/en/3.1/ref/templates/builtins/#for
2. @LinhNguyen итак, что мне написать в моем контекстном словаре?
Ответ №1:
Ну, видимо, мой код был правильным, но я назначил два представления одному шаблону. Это неверно, и вам нужно объединить их в одно представление, чтобы исправить это.