1.为什么要使用模板

在上一篇博文中,提到了HttpReponse,但是HttpReponse只能传送字符串,如果要构建一个网页,那么工作量就会十分巨大。模板是一种方便的标签,存在于HTML文件中,我们可以通过模板的语法格式,动态接收服务器发送的数据,再由模板进行渲染。

2.模板目录的配置

既然我们要使用模板,那么我们就要有个目录来存放模板。而且为了我们的程序能够搜索到模板,还要对模板目录进行配置。
(1)在我们的项目目录下新建一个templates文件夹
(2)在templates下新建rango文件夹(注:rango是我的项目中的一个应用)
(3)打开settings.py配置我们的模板信息
方法一:

TEMPLATE_DIRS=(<workspace>/<projectname>)

虽然我们可以使用绝对路径,但是当我们的项目要运行再其他人的机器上时,workspace的名称可能不一样,这样我们就需要使用动态的路径来表示。url和path这种东西,在我们的开发中切忌写“死”了
方法二:(推荐)
在我们的settings.py中有一个名为BASE_DIR的变量,它表示文件所在目录的上级目录,也就是我们的templates文件夹所在目录。
所以我们新建一个变量TEMPLATE_PATH=os.path.join(BASE_DIR,'templates')
ps:os.path.join这个函数会将路径相结合,得到的就是BASE_DIR/templates
好了,现在我们的

TEMPLATE_DIRS=(TEMPLATE_PATH)

3.添加模板

万事俱备,就等我们添加一个模板了。这个模板的位置自然就在templates/rango中,新建一个index.html

<!DOCTYPE html>
<html>
<head>
<title>Rango</title>
<h1>rango says</h1>
hello<strong>{{USERNAME}}</strong>!
<a href="/rango/about">About</a>
</head>
<body>
</body>
</html>

这段html代码表示我们对一个user,say hello

4.修改views.py

目前,我们的views.py文件中,index函数还不能映射到这个index.html文件。所以要对其进行修改

from django.shortcuts import render

引入render(渲染)
新建一个字典变量

context_dict = {'username': "Liao"}
return render(request,'rango/index.html',context_dict)

运行

python manage.py runserver

就可以看到我们的

helloLiao!

5.静态文件

前端开发,html,css,js缺一不可。我们虽然能够使用模板开始渲染了,但是还没有使用到css来给网页添加样式,也没有图片,所以得到的只是一个粗糙简单的页面
(1)在我们的项目中新建static文件夹,在static中再新建images文件夹
(2)同上面,我们为了让程序搜索到static文件夹,仍然需要在settings.py文件中配置相关变量

STATIC_PATH = os.path.join(BASE_DIR,'static')
STATICFILES_DIRS=(STATIC_PATH)

(3)让我们在images文件夹里面悄悄地放一张图片,然后运行程序,
访问
http://127.0.0.1:8000/static/images/
image-name是我们的图片名称,切记要带后缀
不出意外,我们将会在浏览器上看到这幅图片,如果出错,一般会报404 not found
仔细检查django的配置文件拼写即可。

6.结合静态文件和模板

为了使用静态文件,我们需要再模板首行加上这么一句话

{% load staticfiles %}

为了显示我们的图片

<img src="{% static "image/test1.jpg" %}" alt='test picture' />

当中使用到了static,表示我们引用的是一个静态文件。
同理,当我们要使用js,css等外部静态文件时,也可以使用static,提供路径即可。

7.总结

今天学习了模板和静态文件
1.模板
(1)在我们的templates文件夹中新建所需的模板,并且在settings.py文件中配置

    TEMPLATE_PATH=os.path.join(BASE_DIR,'tmeplates')
TEMPLATE_DIRS=(TEMPALTE_PATH,)

(2)在应用的views.py文件中新建视图函数,在视图函数中创建一个字典,在字典中存放我们要传入到模板中的数据。
(3)使用render()函数,生成渲染模板响应

2.静态文件
在static文件夹中存放我们所需的css,js等文件,在static文件夹中新建images文件夹,存放图片。
(1)配置static目录

STATIC_PATH=os.path.join(BASE_DIR,'static')
STATICFILES_DIRS=(STATIC_PATH,)

(2)访问静态文件

localhost:8000/static/images/filename

(3)在模板中访问静态文件

{% load staticfile%}

切记,上面那行代码要放再<!DOCUMENT>下面,而在上面的位置,如果放在中,会造成不必要的空格。
使用{% static "filename" %}访问静态文件。

django模板和静态文件的更多相关文章

  1. django 模板使用静态文件

    1.新建项目 2.新建app,并在install_app中添加该app 3.和app文件夹并列新建static.和TEMPLATES  文件夹,分别放静态文件和模板 4.setting.py中设置 T ...

  2. 我的django之旅(二)模板和静态文件

    我的django之旅(二)模板和静态文件 标签(空格分隔): django 1.为什么要使用模板 在上一篇博文中,提到了HttpReponse,但是HttpReponse只能传送字符串,如果要构建一个 ...

  3. Django中对静态文件的支持(转)

    英文原文:[http://agiliq.com/blog/2013/03/serving-static-files-in-django/] 译文:[http://segmentfault.com/a/ ...

  4. Django (七) token&静态文件&媒体文件

    token&静态文件&媒体文件 1. token 1. 会话技术 2. 服务端会话技术 3. 它实际上就是手动实现的session 4. 实现token 4.1 在models.py中 ...

  5. django中的静态文件

    静态文件 1.什么是静态文件 在django中静态文件是指那些图片.css样式.js样式.视频.音频等静态资源. 2.为什么要配置静态文件 这些静态文件往往不需要频繁的进行变动,如果我们将这些静态文件 ...

  6. vert.x学习(六),动态模板与静态文件的结合

    这篇学习在动态模板里面引入css,把动态模板与静态文件结合起来使用. 编写DynamicReference.java package com.javafm.vertx.helloworld; impo ...

  7. Django基础二静态文件和ORM

    Django基础二静态文件和ORM 目录 Django基础二静态文件和ORM 1. 静态文件 1.1 静态文件基本配置: 1.2 静态文件进阶配置 2. request参数 3. Django配置数据 ...

  8. Django app安装,配置mysql,时区,模板,静态文件,媒体,admin

    1.创建app python manage.py startapp 名字 Migrations 数据库同步目录,记录数据库同步的记录 init 包文件 Admin.py django自带的后台管理文件 ...

  9. Django配置与静态文件

    settings.py """ Django settings for myproject project. Generated by 'django-admin sta ...

随机推荐

  1. asp.netcore Log4Net连接kafka的方法

    1.NuGet添加2个包: Microsoft.Extensions.Logging.Log4Net.AspNetCore log4net.Kafka.Core 2.Program里修改CreateW ...

  2. idel上传代码到github时遇到的Push rejected: Push to origin/master was rejected

    1 没有权限 2 先pull之后,再push即可

  3. VC 获取系统特殊文件夹的路径如:系统目录,桌面等

    转载:https://blog.csdn.net/qq_23992597/article/details/50963343 如果需要,请在StdAfx.h中添加 #include <shlobj ...

  4. 转:webpack代码压缩优化

    压缩代码 18 天前30前端开发 压缩 JavaScript 修改 JavaScript 压缩处理器 其他压缩 JavaScript 的方法 加快 JavaScript 执行速度 作用域提升 预执行 ...

  5. 深入nginx之《获取用户的真实IP》

    获取用户的真实IP Nginx会将客户端的IP信息存放在$remote_addr变量里,但这并不意味着它就是客户端的IP,生产环境往往会充满各种代理,让IP的来龙去脉变得扑朔迷离. 目前互联网公司基本 ...

  6. (转) C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracle数据库

    原贴链接:https://www.cnblogs.com/mq0036/p/11052359.html C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracl ...

  7. python:将时间戳格式化为yyyyMMdd hh:mm:ss

    import time #将10位时间戳或者13位转换为时间字符串,默认为2017-10-01 13:37:04格式 def timestamp_to_date(time_stamp, format_ ...

  8. JPA中JpaRepository的使用

    JAP中JpaRepository的使用方法 转载:https://www.cnblogs.com/amberbar/p/10261599.html转载:https://www.cnblogs.com ...

  9. php数组到json的转变

    今天做项目遇到个问题,一个接口,输出二维数组,前端说他要的数据格式是数组,而不是对象,就像上个数据一样,我当时就懵逼了,,,什么对象?我明明输出的是数组啊...然后我看了看我返回的json串,emmm ...

  10. golang ---常用函数:make

    简介 内建函数 make 用来为 slice,map 或 chan 类型分配内存和初始化一个对象(注意:只能用在这三种类型上) slice // 长度为5,容量为10的slice,slice中的元素是 ...