如何将Django数据库数据展示在根路径对应的index.html页面
解决方法
你当前根路径绑定的是普通函数视图index,该视图没有向模板传递任何数据库查询结果,自然无法渲染数据,只需修改路由绑定、移除冗余代码即可:
第一步:修改urls.py配置
把根路径的视图替换为你写好的ListView类视图即可,修改后的urlpatterns如下:
urlpatterns = [ # 替换原来的views.index为my_db_class.as_view(),保留name参数不影响其他地方反向引用 path('', my_db_class.as_view(), name = "index"), # 原this_is_the_path路由如果不需要可以直接删除 ]
第二步:移除冗余代码(可选)
你原来写的函数视图index已经没用了,可以直接从views.py里删掉,避免代码冗余。
可选优化
可以给ListView指定自定义的上下文变量名,提高模板代码可读性:
class my_db_class(ListView): model = Database template_name = 'index.html' # 新增这行,指定传递到模板的列表变量名为posts context_object_name = 'posts'
对应的模板代码可以改成:
<ul> {% for post in posts %} <li> {{ post.text }}</li> {% endfor %} </ul>
修改完重启服务,访问根路径就能看到数据库渲染的内容了。
内容的提问来源于stack exchange,提问作者kitchen800
相关产品推荐
相关产品推荐

