我有一个Django项目,它在pandas数据帧的每一行中获取信息,并在页面上显示内容。我想把数据帧的每一行都用自己唯一的路径分隔成自己的页面。数据帧中的行太多,无法对views.py文件上下文中的每一行进行硬编码。如何为每一行创建一个唯一的url路径?这可能吗?
您可能想做一些事情,比如在url 中嵌入行作为参数
像
http://example.com/pandasdata/<row>
在您的视图中,您将从url中提取行,并仅从pandas数据帧中提取该数据并显示该数据。
在您的应用程序urls.py
文件中添加以下代码
path('pandasdata/< int:rowid >', views.row)
在您的应用程序views.py文件中,添加以下代码:
def row(request, rowid):
# Add code to extract row and display here
确保两个地名应该相同(rowid(
上面的答案完全正确,正是我想要的。我只想为将来遇到这个问题的人详细说明一下。
如答案中所述,在urls.py
文件中添加用于提取行信息的路径。类似于:
path("data/<int:row_id>/", views.app)
然后在views.py
文件中,您将能够访问如下行信息:
def func(request, row_id):
row_id = row_id
x = row_id
df1 = df.iloc[x]
return render(request, "data/app.html", {
"col1": df1['col1'],
"col2": df1['col2'],}
现在,当您访问像http://example.com/data/100/
这样的路径时,它将从数据帧中加载具有该索引的行,以及您在上下文中设置的列中的任何信息。或者,如果该数字超出了数据库中的行数,则会引发错误。
感谢WombatPM的原创答案!