8.3 Django 模板(1)

本文详细介绍了Django模板的使用,包括创建模板目录、设置模板路径、在views.py中传递数据、模板变量、列表、字典、过滤器的使用,如`lower`、`default`、`length`、`filesizeformat`、`date`、`truncatechars`、`safe`等,并展示了`if/else`、`for`循环标签的用法,以及`include`和`csrf_token`的功能。
摘要由CSDN通过智能技术生成

Django 模板

模板应用实例

在 HelloWorld 目录底下创建 templates 目录并建立 runoob.html文件,整个目录结构如下:

HelloWorld/

|-- HelloWorld

|   |-- __init__.py

|   |-- __init__.pyc

|   |-- settings.py

|   |-- settings.pyc

|   |-- urls.py

|   |-- urls.pyc

|   |-- views.py

|   |-- views.pyc

|   |-- wsgi.py

|   `-- wsgi.pyc

|-- manage.py

`-- templates

    `-- runoob.html

runoob.html

文件代码如下:

HelloWorld/templates/runoob.html

文件代码:

<h1>{ { hello }}</h1>

从模板中我们知道变量使用了双括号。

向Django说明模板文件的路径,修改HelloWorld/settings.py,修改 TEMPLATES 中的 DIRS 为 [os.path.join(BASE_DIR, 'templates')]。

HelloWorld/HelloWorld/settings.py 文件代码:

...

TEMPLATES = [

    {

        'BACKEND': 'django.template.backends.django.DjangoTemplates',

        'DIRS': [os.path.join(BASE_DIR, 'templates')],       # 修改位置

        'APP_DIRS': True,

        'OPTIONS': {

            'context_processors': [

                'django.template.context_processors.debug',

                'django.template.context_processors.request',

                'django.contrib.auth.context_processors.auth',

                'django.contrib.messages.context_processors.messages',

            ],

        },

    },

]

...

修改 views.py,增加一个新的对象,用于向模板提交数据:

HelloWorld/HelloWorld/views.py 文件代码:

from django.shortcuts import render

def runoob(request):

    context          = {}

    context['hello'] = 'Hello World!'

    return render(request, 'runoob.html', context)

HelloWorld/HelloWorld/urls.py 文件代码:

from django.urls import path

from . import views

urlpatterns = [

    path('runoob/', views.runoob),

]

可以看到,我们这里使用 render 来替代之前使用的 HttpResponse。render 还使用了一个字典 context 作为参数。

context 字典中元素的键值 hello 对应了模板中的变量 { { hello }}。

再次访问 http://127.0.0.1:8000/runoob。

接下来我们将具体介绍模板中常用的语法规则。

Django 模板标签

变量

模板语法:

view:{"HTML变量名" : "views变量名"}

HTML:{{变量名}}

HelloWorld/HelloWorld/views.py 文件代码:

from django.shortcuts import render

def runoob(request):

  views_name = "菜鸟教程"

  return  render(request,"runoob.html", {"name":views_name})

templates 中的 runoob.html :

<p>{ { name }}</p>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值