django模板和静态文件
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模板和静态文件的更多相关文章
- django 模板使用静态文件
1.新建项目 2.新建app,并在install_app中添加该app 3.和app文件夹并列新建static.和TEMPLATES 文件夹,分别放静态文件和模板 4.setting.py中设置 T ...
- 我的django之旅(二)模板和静态文件
我的django之旅(二)模板和静态文件 标签(空格分隔): django 1.为什么要使用模板 在上一篇博文中,提到了HttpReponse,但是HttpReponse只能传送字符串,如果要构建一个 ...
- Django中对静态文件的支持(转)
英文原文:[http://agiliq.com/blog/2013/03/serving-static-files-in-django/] 译文:[http://segmentfault.com/a/ ...
- Django (七) token&静态文件&媒体文件
token&静态文件&媒体文件 1. token 1. 会话技术 2. 服务端会话技术 3. 它实际上就是手动实现的session 4. 实现token 4.1 在models.py中 ...
- django中的静态文件
静态文件 1.什么是静态文件 在django中静态文件是指那些图片.css样式.js样式.视频.音频等静态资源. 2.为什么要配置静态文件 这些静态文件往往不需要频繁的进行变动,如果我们将这些静态文件 ...
- vert.x学习(六),动态模板与静态文件的结合
这篇学习在动态模板里面引入css,把动态模板与静态文件结合起来使用. 编写DynamicReference.java package com.javafm.vertx.helloworld; impo ...
- Django基础二静态文件和ORM
Django基础二静态文件和ORM 目录 Django基础二静态文件和ORM 1. 静态文件 1.1 静态文件基本配置: 1.2 静态文件进阶配置 2. request参数 3. Django配置数据 ...
- Django app安装,配置mysql,时区,模板,静态文件,媒体,admin
1.创建app python manage.py startapp 名字 Migrations 数据库同步目录,记录数据库同步的记录 init 包文件 Admin.py django自带的后台管理文件 ...
- Django配置与静态文件
settings.py """ Django settings for myproject project. Generated by 'django-admin sta ...
随机推荐
- 【GM4008】GM4008升级固件发布(版本V4.2.1.1)
===================== GM4008固件升级发布 ===================== 〇.简介:GM4008 8通道0-24mA电流采集模块,采用全电气隔离方案,配合高性能 ...
- dubbo 报错问题记录:may be version or group mismatch
凌晨时候钉钉告警群里一直大量报错: 接口异常报警:项目:mp-rest,域名:inside-mp.01zhuanche.com,IP:10.30.3.60,接口地址:/api/v3/driverLog ...
- Django Model 模型
参考: https://www.runoob.com/django/django-model.html https://www.cnblogs.com/taosiyu/p/11260000.html ...
- c# socket 心跳 重连
/// <summary> /// 检查一个Socket是否可连接 /// </summary> /// <param name="socket"&g ...
- Error: Error occured while starting App. Original error: Activity used to start app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity
Error: Error occured while starting App. Original error: Activity used to start app doesn't exist or ...
- 通过TopShelf简单创建windows service
目前很多项目都是B/S架构的,我们经常会用到webapi.MVC等框架,实际项目中可能不仅仅是一些数据的增删改查,需要对数据进行计算,但是将计算逻辑放到api层又会拖累整个项目的运行速度,从而会写一些 ...
- Intellij IDEA debug断点调试技巧与总结详解篇
1. Rerun . 这个就是结束debug模式,直接以run的方式重新跑某个程序.2. 直接跑完. 到下一个断点停下. 没有就直接跑完程序.3. 停止项目或者程序.要是自己的main呢. 点一下就停 ...
- 029 SSM综合练习05--数据后台管理系统--订单分页查询
1.PageHelper介绍 PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql.oracle.mariaDB.DB2.SQLite.H ...
- Three.js场景的基本组件
1.场景Scene THREE.Scene被称为场景图,可以用来保存所有图形场景的必要信息.每个添加到Scene的对象,包括Scene自身都继承自名为THREE.Object3D对象.Scene不仅仅 ...
- python教程:用简单的Python编写Web应用程序
python现在已经成为很多程序员关注的编程语言之一,很多程序员也都开始弄python编程,并且很多时候都会用自己的操作来选择,而现在不管是程序员还是少儿编程,都会有python这门课,今天就和大家分 ...