标签: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/
访问效果如下:

标签:bsp fir 传递 接收 地址 style 页面 注释 cut
原文地址:https://www.cnblogs.com/lzhshn/p/11373330.html