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

sessio 类似字典,表示会话

方法 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')

猜你喜欢

转载自blog.csdn.net/xiaohuoche175/article/details/81264565