zoukankan      html  css  js  c++  java
  • Django构建列表和详细视图

    在了解了如何使用ORM后,即可着手准备构建你们的应用程序视图(这里本人以博客为例)。Django视图仅表示为一个Python函数,接收 Web 请求并返回一个 Web 响应。另外,返回响应结果的全部逻辑均位于视图中。

    首先,需要创建应用程序视图,并于随后针对每个视图定义URL。最后,还需要创建HTML 模板,以渲染视图所生成的数据。其中,每个视图将渲染一个模板(向其中传递变量),并返回包含渲染输出结果的 HTTP 响应。

    生成列表和视图

    下面开始创建视图以显示帖子列表。编辑 blog 应用程序的 views.py 文件,如下所示:

    from django.shortcuts import render, get_object_or_404
    from .models import Post
    
    def post_list(request, tag_slug=None):
        posts = Post.objects.all()
        return render(request, 'blog/post/list.html', {'posts': posts})

    上述代码创建了第一个Django视图。具体来说,post_list 视图接收 request 对象作为唯一参数。需要注意的是,全部视图都需要使用到该参数。在当前视图中,将利用objects 管理器检索包含objects 状态的所有帖子。最后使用Django 提供的 render() 方法渲染包含给定模板的帖子列表。

    下面创建第二个视图并显示独立的帖子。对此,可向 views.py 文件下添加下列函数:

    def post_detail(request, year, month, day, post):
        post = get_object_or_404(Post, slug=post,
                                 status='published',
                                 publish__year=year,
                                 publish__month=month,
                                 publish__day=day)
        return render(request, 'blog/post/detail.html', {'post': post})

    作为帖子详情视图,该视图接收year、month、day以及post 作为参数,并检索包含既定 slug 和日期的发布帖子。最后使用Django 提供的 render() 方法渲染包含给定模板的帖子列表。

    注意到目前为止,我们只写了视图,下面还需要添加路径和视图模板,这部分本人将在明天进行更新。感谢支持。

  • 相关阅读:
    职场“十不要”,让你少奋斗30年
    360与QQ在用户界面上的明显BUG
    urlMappings在asp.net2.0,asp.net4.0中的差异
    NHibernate主键生成方式
    MDaemon 常用视频教程
    sqlserver 差异备份与还原示例
    没有不死的爱情, 只有平淡的亲情——如何维系我们的婚姻
    25 个在 Web 中嵌入图表的免费资源
    atoi,atol,strtod,strtol,strtoul实现类型转换
    人生之精华,胜读十年书
  • 原文地址:https://www.cnblogs.com/xcbb/p/14274191.html
Copyright © 2011-2022 走看看