文章目录
一、模板
1.使用模板调用一个页面
步骤: 定义一个函数
函数里面写一个html页面
构建模板渲染数据(使html中的类似 我是{{ name }} 无实际数据的收到实际数据)
1.构建模板结构
2.创建渲染模板
3.进行数据渲染
4.返回结果
返回数据(返回的就是html页面)
在views中
from django.template import Template,Context
def gethtml(request):
html="""
<html>
<head>
</head>
<body>
<h1>我是一个h1标签</h1>
<h2>我是{{ name }}</h2>
<a href = "https://baike.baidu.com/item/%E5%BE%B7%E6%80%80%E6%81%A9%C2%B7%E9%9F%A6%E5%BE%B7/5457042?fromtitle=%E9%9F%A6%E5%BE%B7&fromid=64575&fr=aladdin">
<img src='https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1568003957396&di=a9ef056162060cc8d0bb4e830d80f1a4&imgtype=0&src=http%3A%2F%2F03imgmini.eastday.com%2Fmobile%2F20180917%2F62855583b6b5e607bdd7c8d54c34c8dc_wmk.jpeg' title = '这是韦德' alt='这个是韦德'>
</a>
<p>{{ content }}</p>
</body>
</html>
"""
#1.构建模板结构
tempalte_obj = Template(html)
#2.创建渲染模板
params = dict(name="韦德大爷",content="好几个总冠军")
content_obj = Context(params)
#3.进行数据渲染
result = tempalte_obj.render(content_obj)
#4.返回结果
# return HttpResponse(html)
return HttpResponse(result)
在urls中
缺点: 这种方式虽然能够实现调用一个html页面,并且能够将数据渲染上去,但是页面依然嵌套在python代码中,编写不方便。因此 不常用。
2.模板标签系统介绍
在做web开发,要给用户提供一个页面,页面包括静态页面+数据,两者结合起来就是完整的可视化的页面,django的模板系统支持这种功能,首先需要写一个静态页面(结构html,样式css,行为js)然后通过python的模板语法将数据渲染上去。
使用template之前的配置步骤:
1.创建一个templates目录
2.配置模板
配置完后运行;项目根目录下的templates目录
可以通过改第一行改成jinjia2模板引擎
3.调用模板的方法
-
调用模板第一种方法
render方法 要导入from django.shortcuts import render 该方法有三个参数:request请求,请求的页面,动态渲染()
-
调用模板第二种方法
render_to_response方法 后面有两个参数:请求的页面,动态渲染
-
调用模板的第三种方法
template.render方法
二、模板语法
1.变量的使用
在模板中,如果想要使用后端传入的数据,就要用到模板语法去实现。
django提供的模板语法:变量的使用,控制语句,循环
django模板html文件中使用变量
语法: {{ }}
使用locals()方法,作用是将当前视图函数的所有局部变量返回 (后面不用再加字典一个个传入)
2.控制语句
if else elif
模板中使用控制语句,语法结构
{% if 条件 %}
{% elif 条件 %}
{% else %}
{% endif %}
3.循环语句
1. 遍历列表
2. 遍历字典
3. forloop
forloop是一个django自带的一个变量,作用于循环,记录循环的次数,可以对循环的内容进行控制,判断,通常和if连用
-
过滤器
对视图传过来的数据进行二次处理语法结构:{{ age | add:10 }} 在age的基础上加10
safe django出于安全考虑,会将前面注入的js或者html语句转义,使用safe将指定的js或者html变为安全的语句,正常执行。
加了safe可以安全弹出
三、静态文件
前端三大部分 结构 样式 行为
在web开发过程当中,有一类型的文件叫做:静态文件,指:css,js,image.这些文件通常不被直接访问,往往是在加载页面的时候被加载,这些内容是固定的。
1.静态文件的配置
static下面创建三个dictionary:css,images,js
2.配置静态文件
指向文件的绝对路径,由static代理
# 静态文件的配置
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
STATICFILES_DIRS 后面可以是列表或者是元祖
由status_URL 替代、代理了下面的 静态文件的具体地址
3.静态文件的使用
4.页面跳转
网络页面和本地页面的相互转换
在上面修改
而a标签的href="/index"要加 /