《seo教程:搜索引擎优化入门与进阶(第2版)》(一个完整的Django入门指南(中文版)第9节,可以查看该教程的完整目录)
优采云 发布时间: 2022-03-03 20: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 - 主页请求测试