栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python > python框架

Django入门指南09-templates模板引擎

python框架 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django入门指南09-templates模板引擎

注:本文为 《一个完整的Django入门指南》系列教程(中文版)第9节,你可以查看该教程的完整目录。

Django 模板引擎设置

在manage.py所在的目录创建一个名为 templates的新文件夹:

myproject/

 |-- myproject/

 |    |-- boards/

 |    |-- myproject/

 |    |-- templates/   <-- 这里

 |    +-- manage.py

 +-- venv/

在templates文件夹中,创建一个名为home.html的HTML文件:

templates/home.html



  
    
    Boards
  
  
    Boards
{% for board in boards %}
      {{ board.name }} 
    {% endfor %}

在上面的例子中,我们混入了原始HTML和一些特殊标签 {% for ... in ... %} 和 {{ variable }} 。它们是Django模板语言的一部分。上面的例子展示了如何使用 for遍历列表对象。{{ board.name }}会在 HTML 模板中会被渲染成版块的名称,最后生成动态HTML文档。

在我们可以使用这个HTML页面之前,我们必须告诉Django在哪里可以找到我们应用程序的模板。

打开myproject目录下面的settings.py文件,搜索TEMPLATES变量,并设置DIRS 的值为 os.path.join(base_DIR, 'templates'):

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',
            ],
        },
    },
]

本质上,刚添加的这一行所做的事情就是找到项目的完整路径并在后面附加“/templates”

我们可以使用Python shell进行调试:

python manage.py shell
from django.conf import settings
settings.base_DIR
'/Users/vitorfs/Development/myproject'
import os
os.path.join(settings.base_DIR, 'templates')
'/Users/vitorfs/Development/myproject/templates'

看到了吗?它只是指向我们在前面步骤中创建的templates文件夹。

现在我们可以更新home视图:

boards/views.py
from django.shortcuts import render
from .models import Board
def home(request):
    boards = Board.objects.all()
    return render(request, 'home.html', {'boards': boards})

生成的HTML:

我们可以table表示替换,改进HTML模板:

templates/home.html


  
    
    Boards
  
  
    Boards

      
        
          Board
          Posts
          Topics
          Last Post
        
      
      
        {% for board in boards %}
          
            
              {{ board.name }}
              {{ board.description }}                          0             0                                 {% endfor %}               

下一节:Django入门指南10-主页的请求测试

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/13136.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号