码迷,mamicode.com
首页 > 其他好文 > 详细

107-创建第一个动态模板

时间:2019-08-18 19:19:08      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:bsp   fir   传递   接收   地址   style   页面   注释   cut   

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/

访问效果如下:

技术图片

 

107-创建第一个动态模板

标签:bsp   fir   传递   接收   地址   style   页面   注释   cut   

原文地址:https://www.cnblogs.com/lzhshn/p/11373330.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!