Django网络框架使用(三)

来源:互联网 发布:数据库 er设计 编辑:程序博客网 时间:2024/06/01 10:19

Django 模板

模板的概念:
   模板是一个文本,用于分离文档的显示格式和内容。
类似于jsp,asp等对页面的操作

应用实例

在之前已经创建好的项目Web1中创建 Folder 目录
后建立 page1.html文件
文件

page1.html 中代码如下:

<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"><head>    <meta charset="utf-8" />    <title></title></head><body>    <h2>{{first}}</h2></body></html>

注:变量使用了双括号


写入模板文件的路径

修改settings.py(配置文件)
修改 TEMPLATES 中的 DIRS 为 [BASE_DIR+”/Folder”],
如下所示:

...TEMPLATES = [    {        'BACKEND': 'django.template.backends.django.DjangoTemplates',        'DIRS': [BASE_DIR+"/Web1/Folder"],       # 修改模板位置        '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',            ],        },    },]

路径配置

注意:一定要在BASE_DIR(项目地址)后面加’+’(连接地址字符串)要不会因为路径配置不对找不到文件

在VS中不能直接把文件夹添加最外面与项目(最外面那个Web1)同级
只好在Web1(配置文件)文件夹内添加Folder文件夹
实际开发都会在外部添加Django应用,自动生成许多文件

路径配置

之后修改创建过的装载文档 view.py

增加一个新的对象,用于向模板提交数据:

代码:

from django.http import HttpResponsefrom django.shortcuts import renderdef hello(request):    connect_text          = {}       #初始化context为dict(map)    connect_text['first'] = 'Hello World!' #设置first变量的值为字符串 Hello World!    return render(request, 'Page1.html', connect_text);    #render()用来链接Page1.html文档中的变量使用和connect_text字典

图片

render 底层也是 HttpResponse

render 接受了一个字典 connect_text 作为参数。
connect_text 字典中元素的键值 “first” 对应了模板中的变量 “{{ first }}”
此时的参数中的 Page1.html 将在BASE_DIR/Folder 构成的默认DIRS 查找

源码中可以看到:
源码

此时传入的connect_text字典将会在’Page1.html’文档匹配到Key然后取Value,并用HttpResponse返回到Response头中

运行
再访问访问 http://127.0.0.1:8000/index,(命令行中启动python manage.py runserver 0.0.0.0:8000,可指定ip以及端口)可以看到页面:

主页

此时已完成使用基本模板来输出数据,实现数据与视图分离

补齐一下一下些同学所关心的应用,项目的概念问题

项目中可以有多个应用,本身自带的且与项目名称同名的是网站基本配置文件,
除此之外,为个人独立创建的应用,可能是某一个功能的集合,也可能是某个特定的模块。。。

下一节是模板语法规则

原创粉丝点击