djando模板----第一django模板应用
Django模板
我们已经知道,模板函数的函数的返回值就是返回给客户端的数据,但如果返回数据很复杂,如果一个非常大的html页面,直接将页面代码固化在python脚本文件中是不合适的,当然
也可以将html页面代码放到一个文件中,然后通过open函数或其他API读取文件内容。这是一种非常好的方式,不过这些功能已经被django封装了。
djaogo模板就是django内建的模板,无须单独安装。
django模板就是HTML静态页(可能包含CSS、JS等前端代码)和标签的组合。也就是说,Django模板与HTML静态页面非常相似,这是除了静态部分,还有动态部分,这一部分成为标签,
django模板文件是通过路由函数返回给客户端的,所以在返回之前,django模板引擎会先将模板中所有的标签替换成静态页面的内容(主要是HTML代码),也就是说,django模板中的
标签在浏览器中是看不到的,我们看到的都是这些标签转换而成的html代码。只有web服务端才能看到这些标签,并进行相应的替换。
djgango模板文件默认都放在template目录中。使用pycharm创建django过程时会自动创建template目录。除了标签外,django模板中的其他部分和html页面没有什么区别。所有的标签
都使用{{...}}扩起来,一般{{...}} 内是一个标识符 如 {{name}},方便web服务端替换标签。
返回django模板文件需要使用django.shortcuts模块中的render函数,该函数需要指定三个参数,第1个参数是request,第2个参数是django模板文件名(如hello.html),第3个参数
是一个字典类型,用于存储标签需要替换的值。字典的key就是{{...}}中的标识符。
本例在template目录中建立一个简单的django模板文件(hello.html),然后在工程的Firstdjango目录中创建view.py脚本文件编写一个名为hello的路由函数,用于返回hello.html。
1、首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html
2、在template目录中建立一个简单的django模板文件(hello.html),然后在hello.html文件中添加如下内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hello</title>
</head>
<body>
<h1>{{ hello }}</h1>
</body>
</html>
3、在工程的Firstdjango目录中建立一个view.py脚本文件,然后在view.py文件中添加如下内容:
from django.shortcuts import render
def hello(request):
values={}
#设置替换标签的值
values['hello']='hello world'
#使用render函数返回hello.html文件
return render(request,'hello.html',values)
4、然后在Firstdjango目录中找到urls.py脚本文件,用下面的代码代替urls.py脚本里面的内容:
from django.conf.urls import url
from .import view
urlpatterns=[
#下面代码是本例添加的路由方法与正则表达式的映射
url(r'^hello$',view.hello),
]
5、启动django
如果已经启动就不需要再次启动,django会自动加载修改的内容
6、浏览器访问
http://127.0.0.1:8000/hello
hello world
7、创建上面hello.html、view.py脚本文件位置如下图所示:

djando模板----第一django模板应用的更多相关文章
- 转换器2:ThinkPhp模板转Django模板
前天写了个<ThinkPhp模板转Flask模板> 居然被同事鄙视了,原因是他用Django,我用Flask,为了避免被他继续安利Django的强大.我决定写一个Django模板转换器. ...
- django模板语法
Django 模板语法 Django 模板语法 一.模板 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法 模板语法变量:{{ }}在Django模板中遍历复杂 ...
- Python学习---django模板语法180122
django模板语法[Template] 模版的组成: HTML代码+逻辑控制代码 <h1> {{ user_name }} </h1> 逻辑控制代码的组成: 1.变量: ...
- django之创建第3个项目:编写第一个模板文件
1.django结构 2.在站点blog下创建templates文件夹,专门用于存放模板文件 3.在templates文件夹下创建index.html文件 #index.html <!DOCTY ...
- Django(4)html模板继承、模板导入、分页实现
1.获取所有请求信息 导入模块:from django.core.handlers.wsgi import WSGIRequest request.environ:包含所有的请求信息,可以打印看一下, ...
- python django 模板
1 用两个大括号括起来的文字{{person_name}} 称为变量 2 被 大括号和面分号包围的文件({% if ordered_warranty %})是模板标签 3 过滤器是用管道符(|) 和U ...
- Django模板-分离的模板
上一篇Django模板-在视图中使用模板最后的问题,我们需要把数据和展现分离开. 你可能首先考虑把模板保存在文件系统的某个位置并用 Python 内建的文件操作函数来读取文件内容. 假设文件保存在 E ...
- Django模板-模板标签
接着Django模板-基础知识继续写模板相关知识. if标签 {% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ). 但是不允许在同一个 ...
- Django模板-基础知识
上一篇中带参数的URLconf虽然可以做到传参动态显示内容,但是最终现实的内容还是硬编码到Python代码中的 def hours_ahead(request,phours): try: phours ...
随机推荐
- redis 与 序列化
概念 序列化:把对象转化为可传输的字节序列过程称为序列化. 反序列化:把字节序列还原为对象的过程称为反序列化. 为什么需要序列化 序列化最终的目的是为了对象可以跨平台存储,和进行网络传输.而我们进行跨 ...
- MyCat(1.1)Mycat基本介绍
[1]学习目的 (1)掌握在数据库负载增大时的处理方法 (2)理解mycat的基础概念 (3)掌握mycat基础配置和监控方法 [2]Mycat的前世今生 官网:http://mycat.io/ 下载 ...
- NoClassDefFoundError错误发生的原因
今上午项目怎么也起不来,总报这个错,上网查一下,大概解释如下:NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误.例如 ...
- html中的table导出Excel (亲测有用(●'◡'●))
演示地址: http://www.jq22.com/yanshi3312 具体代码: <!DOCTYPE html> <html lang="zh-CN"> ...
- jquery验证时间
http://blog.csdn.net/guguojin/article/details/7045908 验证时间的正则表达式集合 //日期格式yyyy PatternsDict.date_y= ...
- 爬虫(九):scrapy框架回顾
scrapy文档 一:安装scrapy a. pip3 install wheel b. 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#tw ...
- defer 和 async 的区别
1. script 没有 defer 和 async 会停止(阻塞)dom 树构建,立即加载,并执行脚本 2. script 带 async 不会停止(阻塞)dom 树构建,立即异步加载,加载好后立即 ...
- 关闭linux下的主板响声(主板蜂鸣器)
在从deepin的kdd桌面换到xfce桌面后,命令行和界面操作上动不动会让主机响一声. manjaro的xfce版也是如此,不知道是不是linux下xfce的通病. 主要是搜索的时候百度的结果很奇葩 ...
- FOI冬令营 Day1
目录 T1.全连(fc) 传送门 Code T2.原样输出(copy) 传送门 Code T3.不同的缩写(diff) 传送门 Code 打算把省冬的题目放上来,主要是防止自己偷懒不订正 T1. ...
- [Shell]CVE-2017-8464漏洞复现
0x01 漏洞原理 Windows系统通过解析 .LNK 后缀文件时,是使用二进制来解析的,而当恶意的二进制代码被系统识别执行的时候就可以实现远程代码执行,由于是在explorer.exe进程中运行的 ...