zoukankan      html  css  js  c++  java
  • 107-创建第一个动态模板

    1、django的动态模板,总是由views函数准备数据,并指定在某个html模板页面上渲染;views函数负责数据,html页面负责呈现样式。

    2、编写views函数

    from django.shortcuts import render
    from django.shortcuts import HttpResponse
    from .models import CnbTitle
    
    # 编写一个函数,显示所有的CnbTitle
    def show_all_cnbtitle(request):
        all_cnbtitle = CnbTitle.objects.order_by('date_add')
        context = {'all_cnbtitle': all_cnbtitle}
        return render(request, 'all_cnbtitle.html', context)
    

    首先说明:views.py里新引入了models,也就是CnbTitle类;

    admin后台的操作,实际上是新增了一个个CnbTitle类的对象,CnbTitle.objects.order_by表示从数据库取出所有CnbTitle类的对象,然后对它们按时间升序进行排列;

    all_cnbtitle是一个集合,用来接收所有对象。

    最后,按照惯例,将某个参数包装为一个字典,作为上下文传递到模板里去。注意这种写法,绝大多数带参数的模板渲染都是如此。

    3、编写模板

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>All CnbTitle</title>
    </head>
    <body>
      <h1>列举所有文章标题:</h1>
        {% for title in all_cnbtitle %}
            <h3>标题:{{title.text}}</h3>
            <p>添加时间:{{title.date_add}}</p>
            <br /><br />
        {% endfor %}
    </body>
    </html>
    

     在模板的<body></body>之间,已经不是普通的html标签,而是django模板标签。

    而这些内容也肯定不是最终网页上会显示的内容,咋一看,这像是一个for循环,而事实上这的确也就真是一个for循环:

    {% %}里面放python代码,用来完成特定功能或效果;

    {{}}是变量;

    {# #}是注释。

    打开这个模板时,将尝试从传来的变量all_cnbtitle依次取出元素,然后把元素的属性点出来,放在<h3></h3>和<p></p>里,每显示一个元素,放置2个换行,以便和下一个元素区分。

    4、编写url
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('first_page/', views.first_page, name='first_page'),
        path('first_temp/', views.first_temp, name='first_temp'),
        path('show_all_cnbtitle/', views.show_all_cnbtitle, name='show_all_cnbtitle'),
    ]
    

    5、输入地址:http://127.0.0.1:8000/test_app/show_all_cnbtitle/

    访问效果如下:

  • 相关阅读:
    SharePoint2013配置网站邮箱1
    使用正则表达式验证注册页面(用户名,密码,确认密码,邮箱,手机号)
    邮箱和电话验证
    js页面自动刷新和自动跳转
    B. Secret Combination
    B. Queue
    A. Crazy Town
    C. New Year Book Reading
    A. Little Pony and Expected Maximum
    B. Fox And Two Dots
  • 原文地址:https://www.cnblogs.com/lzhshn/p/11373330.html
Copyright © 2011-2022 走看看