首页 > 解决方案 > 如何呈现 HTML 模板?

问题描述

我正在研究这种方法(来自安东尼奥·梅勒(Antonio Mele)所写的书)

def post_list(request):
  posts = Post.published.all()
  return render(request,'blog/post/list.html',{'posts': posts})

OP说我们将创建HTML模板来渲染视图生成的数据。我不明白。这是博客文件夹ls输出

~/mysite/blog$ ls
admin.py  apps.py  __init__.py  migrations  models.py  __pycache__  tests.py  views.py

这就是视图的样子

cat views.py 
from django.shortcuts import render

在此示例中,我无法掌握 post 和 views.py 之间的链接。

标签: pythondjango

解决方案


当您在相应的 url 上发布一些数据时,view.py 和 post 方法中的代码将运行。浏览以下代码段:

def post_list(request):          # http://127.0.0.1:8000/myurl
    if request.method == 'POST':
        # process the posted data if you wish to by
        # posted_data = request.data
        posts = Post.published.all()
        return render(request,'blog/post/list.html',{'posts': posts})

在上述情况下,您必须将 html 模板文件存储在 template/app_name/html_file.html 目录中。因此,当您的 post 方法执行时,它将返回该 html_file.html 文件并为其添加上下文,如下所示:

context = {"posts": posts}
            return render(request, "video_response.html", context)

您必须在 html_file.html 中添加 {{ posts }} 才能在 views.py 的 post 方法中呈现该数据


推荐阅读