《seo教程:搜索引擎优化入门与进阶(第2版)》(一个完整的Django入门指南(中文版)第9节,可以查看该教程的完整目录)

优采云 发布时间: 2022-03-04 15:11

  《seo教程:搜索引擎优化入门与进阶(第2版)》(一个完整的Django入门指南(中文版)第9节,可以查看该教程的完整目录)

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

  Django 模板引擎设置

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

  我的项目/

  |-- 我的项目/

  | |-- 板子/

  | |-- 我的项目/

  | |-- 模板/

  | +-- 管理.py

  +-- venv/

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

  模板/home.html

  

  

    

    Boards

  

  

    Boards

{% for board in boards %}

      {{ board.name }} 

    {% endfor %}

  在上面的例子中,我们混合了原创 HTML 和一些特殊标签 {% for ... in ... %} 和 {{ variable }} 。它们是 Django 模板语言的一部分。上面的例子展示了如何使用 for 来迭代一个列表对象。 {{ board.name }} 会在 HTML 模板中渲染为 board 的名称,最终生成动态的 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'

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

  现在我们可以更新主页视图了:

  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:

  

  我们可以替换表格表示并改进 HTML 模板:

  templates/home.html

  

    

    Boards

  

  

    Boards

      

        

          Board

          Posts

          Topics

          Last Post

        

      

      

        {% for board in boards %}

          

            

              {{ board.name }}

              {{ board.description }}

            

            0

            0

            

          

        {% endfor %}

      

    

  

  

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线