Django核心基础(4): 模板(Template)的设计及常用过滤器与标签介绍

Django网络应用开发的5项基础核心技术包括模型(Model)的设计URL的设计与配置View(视图)的编写,Template(模板)的设计和Form(表单)的使用。今天小编我就来拼个老命给你来介绍下第四项Django核心基础知识之模板Template的设计吧, 并重点介绍下Django模板过滤器与标签想持续了解后续Django Web开发技术请订阅我的公众号【Python与Django大咖之路】。

 

什么是模板(Template)? Django的Template是如何工作的

Django的模板是静态的html文件,它只决定了一个页面的样式或外观。它需要视图View传递过来的变量(Variable)或内容对象(Context object)才能被渲染成一个完整的页面。这样做的好处是实现了样式与业务逻辑的分离,便于前端和后端Web开发人员各自完成自己的开发工作。

 

我们先来看一个新闻博客的例子。当用户访问/blog/article/2/的时候,URL路由器会调用视图views.py的article_detail方法。article_detail所做的就是提取id=2的文章对象,通过render方法,将它传递到模板文件/blog/article_detail.html。

 

# blog/urls.py
from django.urls import path

from . import views

urlpatterns = [
   path('blog/article/<int:id>/', views.article_detail, name='article_detail'),
]

# blog/views.py
from django.shortcuts import render, get_object_or_404
from .models import Article

def article_detail(request, id):
    article = get_object_or_404(Article, pk=id)
    return render(request, 'blog/article_detail.html', {"article": article})

 

下图是模板文件blog/article_detail.html的代码。在模板文件里我们可以通过双括号{ { article }} 显示变量或内容对象,还可以通过点号(.)用来直接访问变量的属性。

 

{% block content %}
{
  
  { article.title }}
{
  
  { article.pub_date }}
{
  
  { article.body }}
{% endblock %}

 

模板(Template)文件的正确位置

对于html模板文件,我们建议放在app/templates/app/文件夹里,而不是简单放在app/templates/里。看似我们多加了一层文件夹使问题复杂化了,但这样做实际上更安全。这与Django查找模板文件的方法有关。因为我们多加了一层app,这样Django只会查找app文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值