Django学习笔记(七):前端页面知识点
页面继承
1, 在基础页面 确定占位
占了位置(挖了哪些坑)
1 js引用
2 CSS 引用
3 网页结构
4 额外的js css页面内代码
2 ,语法
{%block 名字%}
{%endblock%}
3,继承
{%extends '文件名字'%}
{%load static%}
接下来要填坑
{%block 名字%}
写HTML
{%endblock%}
页面继承之包含
1,使用到的关键字
{%'include' 你要包含的页面%}
2,编写代码过程
例如:
head.html内如下内容
<ul>
<li>选项一</li>
<li>选项二</li>
<li>选项三</li>
</ul>
content.html内如下内容
<p>周六加班</p>
work.html继承以上页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>我的劳动果实</p>
{%include "head.html"%}
{%include 'content.html'%}
</body>
</html>
自定义404页面
1,在模板文件夹下新建一个叫404.html的页面
2,在settings.py里关掉DEBUG
DEBUG=FALSE
request对象
服务器在接收到Http请求后,会根据本文创建HttpRequest对象
视图中的第一个参数就是HttpRequest对象
Django框架会自己进行包装,之后传递给视图
属性:path 请求的完整路径
method 请求方法,常用GET,POST
encoding 编码方式,常用utf-8
GET 类似字典的参数,包含了get的所有参数
POST 类似字典的参数,包含了post所有参数
FILES 类似字典的参数,包含了上传的文件
COOKIES 字典,包含了所有COOKIE
session 类似字典,表示会话
方法 is_ajax() 判断是否是ajax(),通常用在移动端和JS中
response对象
状态码
status_code
write和content的区别
write 追加写入
content 直接覆盖
使用实例
def response_index(req):
response = HttpResponse()
response.content = "我是content设置的"
response.write("我是write写的")
response.content = "第二次content,覆盖之前的内容"
response.flush()
response.status_code = 404
return response
加载静态资源
1,在工程目录下新建一个static目录
在该目录下,做自己的项目结构(新建对应的文件夹 比如css,js等文件)
2,将对应的资源放入到对应的文件夹下
3,修改settings.py文件
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
4,前端引用
{%load static%}
引入css
<link rel="stylesheet" href="{%static '你css的文件路径'%}">
示例如下
<link rel="stylesheet" href="{%static '2048/css/style.css'%}">
引入js
<script src="{%static '你的js路径'%}"></script>
示例如下
<script src="{%static '2048/js/bind_polyfill.js'%}"></script>
cookie
浏览器端的会话技术,可以在浏览器端保存一些数据(你想让浏览器帮你记录)
使用方法
设置cookie
response = HttpResponse()
# 设置cookie
response.set_cookie('u_name', name, max_age=5)
# max_age 是过期时间 单位是秒
# max_age 设置为 0 浏览器关闭失效
# 设置为None永不过期
# expires=timedelta(days=10) 10天后过期
读取cookie
# 拿cookie里面的值
u_name = req.COOKIES.get("u_name")
删除cookie.delete_cookie
def my_logout(req):
# 重定向到首页
response = HttpResponseRedirect("/t5/myindex")
# 删除u_name对应的cookie
response.delete_cookie('u_name')
return response
缺陷:数据不安全,会将数据暴露出来
session
服务端会话机制,基于cookie把数据保存到服务端
使用方法:
设置
# 设置session
request.session['你的key'] = 你的值
获取
# 读取session
my_seesion_data = req.session.get('你的key')