当前位置: 首页 > 工具软件 > DjangoX > 使用案例 >

初识Djangox下

秦皓君
2023-12-01

模版配置

首先要告诉Django,你准备把接下来的html页面存放在哪里,那么需要打开settings.py文件,找到TEMPLATES选项,修改其中的DIRS属性,在这里添加我们的html文件夹位置

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

创建模版

有了这个文件夹的配置之后,接下来在项目根目录下创建与配置同名的文件夹template/

并在其中书写一个简单的html,并命名为index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hi</title>
</head>
<body>
<h1>真不错</h1>
<p>
    今天这个天气是<strong>晴天</strong>
</p>
</body>
</html>

视图渲染

有了html,目录也配置好了,那么紧接着就是让视图去返回这个文件,那么现在我们要引入一个新的方法叫做render,这个方法专门用来返回一个html页面,并且在未来,我们还会了解到这个方法的更高级用处,就是传递上下文模版变量

模版变量渲染

思考一下,如果天气每天都变,但是我们现在是写死在页面上的,这样好像也没有起到啥框架的实质性作用啊,这咋行?难道说我还得每天早上起来看了天气预报去修改html**页面标签的文本内容吗?

于是乎,现在我们可以使用模版变量来解决这个问题,页面处数据变化的位置,我们不再写死,而是通过一种特殊的语法,叫做模版变量的形式来展示天气这部分数据,这个语法类似这样

而视图部分,此时可以通过在视图函数内部定义相关的模版变量,来让它通过视图函数去返回 在页面中,模版变量叫做weather,那么在视图函数代码中,就需要有一个映射格式数据,他的key**值对应html页面中的模版变量,而value将是这个模版变量渲染的结果

# app.views.py
from django.shortcuts import render


def index(request):
    content = {'weather': '晴天'}
    return render(request, 'index.html', content)

方便一些的写法还可以直接用*locals***方法,将当前函数作用域下的变量及值组合为字典

# app.views.py
from django.shortcuts import render
def index(request):
		weather = '晴天'
		return render(request,'index.html',locals())

如果成功的话,大家可以看到页面上可以通过视图所定义的变量进行渲染,返回 这样开发者们,也就将不再需要修改html页面,只需要在视图中,通过操作数据库等方式将数据处理好返回即可

同时,因为html页面中更加强大,支持了模版变量这样的内容,所以我们也不在将django中所编写html称作html页面,而是叫做模版页面


那么render方法,我们也可以来做一下总结,render可以用来返回一个模板页面,并将一个字典组合成的模板变量传递到模板页面上,完成页面的渲染

render(request, template_name, context=None)
'''
request: 固定接收 request 请求,与视图 han s 第一个参数相同
template_name: 为一个可以找到的模板页面,填写配置 template 的相对路径即可
context: 模板页面所需模板变量,是一个字典格式,key 为模版变量,value 为渲染的值
'''

 类似资料: