Django学习笔记(二):使用Template让HTML、CSS参与网页建立
Django学习笔记(二):使用Template让HTML、CSS参与网页建立
通过本文章实现:
- 了解Django中Template的使用
- 让HTML、CSS等参与网页建立
- 利用静态文件应用网页样式
一、Template的使用
Template是Django利用渲染器将模板文件与数据内容结合,完成网页整合的方式。
1、Template的建立
在项目文件夹(manage.py所在路径)内,建立templates文件夹。
在setting.py中配置TEMPLATES的DIR。将setting.py文件中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',
],
},
},
]
主要是在'DIRS': [os.path.join(BASE_DIR, 'templates')]中配置。
2、编写HTML模板文件
在templates文件夹中编写drugs_index.html文件,内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>药品搜索</title>
</head>
<body>
<h1>{{html_time}}</h1>
</body>
</html>
文件与一般HTML一致,{{show_time}}部分表示show_time用于后续与Django进行数据通信。
点击查看HTML教程
3、Django与HTML之间的数据通信
在APP下的views.py中先引入get_template模块。
from django.shortcuts import render
from django.http import HttpResponse
import datetime
from django.template.loader import get_template
# Create your views here.
def index(request):
# 确定引入的模板文件
template = get_template('drugs_index.html')
# 定义显示的内容
time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
views_time = '今天是:' + time
# 将views_time通信到HTML中的html_time
html = template.render({'html_time':views_time})
return HttpResponse(html)
cmd中运行python manage.py runserver 0.0.0.0:8000,打开网页可看到数据通信成功。
4、CSS静态文件引入改善页面显示效果
除了在HTML中使用传统的引入方式使用CSS文件外,在Django中,CSS、JS和图片文件可以看作是静态文件,有专门的配置方式。
本笔记使用bootstrap.min.css的本地文件的方式进行演示。点击查看CSS教程
在templates文件夹中建立static子文件夹,在static文件夹内再建立css子文件夹。将bootstrap.min.css文件复制到css子文件夹内。
在settings.py中找到STATIC_URL = '/static/',并增加内容如下:
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'templates/static'),
]
应用CSS与普通情况一样,直接在HTML中编辑。将drugs_index.html文件修改如下:
<!DOCTYPE html>
<!-- 加载静态文件 -->
{% load staticfiles %}
<html lang="en">
<head>
<!-- 以链接方式引用static文件夹中的css文件 -->
<link rel="stylesheet" href="{% static 'bootstrap.min.css' %}">
<meta charset="UTF-8">
<title>药品搜索</title>
</head>
<body>
<!-- 应用css文件中的样式 -->
<p class="text-center muted">{{html_time}}</p>
</body>
</html>
运行后查看网页,可看到使用了css中的样式,使文字可以居中显示,文字颜色变为灰色。
Django学习笔记(二):使用Template让HTML、CSS参与网页建立的更多相关文章
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
- django学习笔记二:一个项目多个App项目搭建
django充许在一个项目中存在多个app,如一个大门户网站中可以包含论坛,新闻等内容,其中每一个模块称之为一个App,也可以理解为一个个独立的小型项目最终集成在一个门户网站中最终呈现给用户 本次测试 ...
- ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
- Django 学习笔记(二)
Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...
- Django学习笔记(9)—— 开发用户注册与登录系统
一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...
- Django学习笔记(4)——Django连接数据库
前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...
- Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API
用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可 ...
- Django学习笔记(16)——扩展Django自带User模型,实现用户注册与登录
一,项目题目:扩展Django自带User模型,实现用户注册与登录 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册,登录,用户认证,注销,修改密码等功能. ...
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
随机推荐
- Radix Sort
为了完成二维数据快速分类,最先使用的是hash分类. 前几天我突然想,既然基数排序的时间复杂度也不高,而且可能比hash分类更稳定,所以不妨试一下. 在实现上我依次实现: 1.一维数组基数排序 基本解 ...
- querystring处理参数小利器
相信上一章的讲解,相信大家对url地址有一个更直观的认识,在url解析的时候可以用querystring这样一个module替换,然后对这个query集成一个对象,这里不管是前端开发还是后端开发,都常 ...
- 简单的Nodejs模块
说千遍,道万遍,不如动手做一遍,我们实现一个node所谓的模块 看下上面的图,了解一下模块自始至终的一个流程,首先是创建模块,也就是一个入口的js文件,里面加了一些特定的功能,然后导出这个模块, ex ...
- 从Java官网下载JDK1.6等低版本JDK
今天在浏览Java官网的时候发现旧版本(1.8之前)的JDK安装包下载地址没有在下载页面明显的提供出来.个人通过在官网查看,发现oracle官方将旧版本的JDK全都放在Java Archive模块中了 ...
- Intel MKL 多线程设置
对于多核程序,多线程对于程序的性能至关重要. 下面,我们将对Intel MKL 有关多线程方面的设置做一些介绍: 我们提到MKL 支持多线程,它包括的两个概念:1>MKL 是线程安全的: MKL ...
- GPGPU::数学基础教程
并行方向需要学习的数学知识 http://dev.gameres.com/Program/Visual/3D/GPGPU_math_Tutorial.html
- C语言结构体排序
定义学生信息结构体和结构体数组,包括学号.两门百分制成绩和姓名;键盘输入 学生不多于 30 人的信息,以输入成绩为负数或大于 100 作为输入结束;按照学号和平均成绩排序,并输出学生信息 //输入学生 ...
- EAIntroView–高度可定制的iOS应用欢迎页通用解决方案
简介 高度可定制的应用欢迎页通用解决方案,可高度定制,不要仅限于现有的demo. 项目主页: EAIntroView 最新示例: 点击下载 入门 安装 安装后,引入” EAIntroView.h”并设 ...
- 如何导入CSV数据 (python3.6.6区别于python2 环境)
1.python2环境下 2.python3.6.6环境下 如果用python2环境下的代码,在python3.6.6环境下编译会出现以下问题: 错误(1): SyntaxError:Missing ...
- 解答室内定位技术新方向:蓝牙AoA定位,值得了解 ——概念了解
转载搜狐 室内定位一直被炒的非常火的黑科技,也是近年资本追逐的热点,市场上一直有众多宣称可以做到厘米级,米级精度定位的公司,但问题很多,无法大规模商用.近些年有很多人尝试使用蓝牙beacon方式做定位 ...