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/

访问效果如下:

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

时间: 2024-08-10 08:12:31

107-创建第一个动态模板的相关文章

django之创建第4个项目编写第一个动态模板文件

修改的地方: 1.index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>django之创建第四个项目</title> </head> <body> <h1>hello,{{name}}</h1> <!--模板变量用变量名定义,如:nam

C++中使用模板,new创建2维动态数组

1 // 使用模板和new创建2维动态数组 2 3 #include<iostream> 4 #include<exception> 5 #include<cstdlib> 6 #include<iomanip> 7 using namespace std; 8 9 template<class Type> 10 bool Make2DArray(Type **&x,int rows,int cols) 11 { 12 int i; 13

eclipse 创建maven 项目 动态web工程(出现问题)

Eclipse 创建maven 项目 动态web工程 注:Eclipse版本为(Version: Mars.1 Release (4.5.1))maven版本为(apache-maven-3.3.9) 1. 此处是在你安装好了maven插件的前提下进行的并且配置好了你的maven环境指定好了你的maven的本地仓库.下面就开始maven web项目的搭建 首先:点击新建一个项目maven 2.点击next 3.选择web选项 4.创建你的项目的坐标点击finish完成 5.项目创建完成但是有错误

迷你MVVM框架 avalonjs 沉思录 第3节 动态模板

模板的发明是编程史上的一大里程碑,让我们摆脱了烦锁且易出错的字符串拼接,维护性大大提高. 都在JSP,ASP时代,人们已经学会使用include等语句,将多个页面片断拼接成一个页面. 此外,为了将数据库中的数据或业务中用到的变量输出到页面,我们需要将页面某个地方标记一下,将变量塞到里面去. 最后,出于方便循环输出一组数据,就需要将each语句从HTML里撕开一道口子,加上其他什么if语句,页面上其实变撕裂成两部分 一种是与后端语言相近的逻辑部分,一个是够为纯净的HTML部分,到最后,模板引擎就发

ASP.NET MVC 03 - 安装MVC5并创建第一个应用程序

不知不觉 又逢年底, 穷的钞票 所剩无几. 朋友圈里 各种装逼, 抹抹眼泪 MVC 继续走起.. 本系列纯属学习笔记,如果哪里有错误或遗漏的地方,希望大家高调指出,当然,我肯定不会低调改正的.(开个小玩笑.哈哈.) 参考书籍:<ASP.NET MVC 4 Web编程>.<ASP.NET MVC 4 高级编程>.<ASP.NET MVC 5 高级编程>.<C#高级编程(第8版)>.<使用ASP.NET MVC开发企业及应用>.度娘谷歌等. -= 安

convirt(二)—— 创建第一台虚机

1.拷贝cms公钥到managed上,cms依赖免秘钥的root执行环境 #非默认端口,你懂的 ssh-copy-id -i ~/.ssh/id_rsa.pub "-p port_number [email protected]" 2.managed上存放iso目录,拷贝镜像存放到该目录 #目录位置和名称随意,只是模板里指定的时候需要指定好即可 mkdir /opt/iso # ls /opt/iso/ CentOS-6.4-x86_64-bin-DVD1.iso 3.增加manage

【VMCloud云平台】SCCM(五)创建第一个集合

继上一篇云平台完成SCCM部署篇之后,SCCM篇正式开始,今天将开始介绍SCCM创建第一个集合,集合作用跟GPO中的作用域是一样的,即有时候你需要对不同范围的机器进行分发操作或其他操作时则需要把范围规定起来(紫色为完成实施,红色为实施中): 1. 打开管理控制台,定位点客户端符合性: 2. 在设备集合上点击右键选择创建设备集合: 3. 输入新集合名称,并选择目标机器所在的集合: 4. 点击下一步,新建成员规则,选择直接规则: 5. 输入资源类型与规则: 6. 接着就会出现筛选出来的值,进行勾选:

Android使用AndEngine创建第一个程序

首先要把andengine.jar复制到libs文件夹里 01 package com.hu.anden; 02   03 import org.anddev.andengine.engine.Engine; 04 import org.anddev.andengine.engine.camera.Camera; 05 import org.anddev.andengine.engine.options.EngineOptions; 06 import org.anddev.andengine.

【scrapy】创建第一个项目

1)创建项目命令: scrapy startproject tutorial 该命令将在当前目录下创建tutorial文件夹 2)定义Item Items are containers that will be loaded with the scraped data;They are declared by creating a scrapy.Item class and defining its attibutes as scrapy.Field objects. import scrapy