欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django笔记(页面复用之包含、自定义404页面、request对象和respons对象、加载静态资源)

程序员文章站 2022-06-03 14:59:49
...

目录

 

页面复用之包含

自定义404页面

request对象与response对象

属性

方法

response对象

拓展:HttpResponse子类

HttpResponseRedirect

加载静态资源


 

页面复用之包含

1.关键字

{%include '你要包含的页面'%}

2.实例代码

<p>我的劳动果实</p>
    {% include 'head.html'%}
    {% include 'content.html' %}
</body>

调用其他html页面编写的代码

 

自定义404页面

1.在模板文件夹下新建一个 404.html  的页面

2.在settings.py 里关闭DEBUG

DEBUG = FALSE

request对象与response对象

1.request对象

Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。

request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据。request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。

服务器在接收到http请后,会根据报文创建HttpRequest对象,视图中的第一个参数就是HttpRequest对象,Django框架会进行自己的包装,之后传递给视图

属性

def index(req):
    # 请求的ip,不是自己的
    print(req.get_host())
    # 类似字典的参数,包含了get的所有参数
    print(req.GET)
    # COOKIES 类似字典的参数,包含所有的COOKIE
    print(dir(req.COOKIES))
    # 请求完整路径
    print(req.path)
    # 编码方式,常用utf-8
    print(req.encoding)
    # 请求的方式,常见DET,POST
    print(req.method)
    print(req.META.get('REMOTE_ADDR'))
    return HttpResponse("ok")

方法

is_ajax()     #判断是否是ajax(),通常用在移动端和js中

response对象

服务器返回给客户端的数据

HttpResponse由程序员自己创建

      1.不使用模板,直接H体图片Response()

       2.调用模板,进行渲染

            2.1 在html页面头部

{% load static %}

          2.2 直接使用render

def play(req):
    return render(req, '2048.html')

示例

def response_index(req):
    response = HttpResponse()
    response.content = "content设置的"
    # 追加
    response.write("我是write写的")
    # 直接覆盖
    response.content = "素质是有点"
    # 冲刷缓冲区
    response.flush()
    response.status_code = 404
    return response

拓展:HttpResponse子类

HttpResponseRedirect

响应重定向:可以实现服务器内部跳转

return HttpResponseRedict('/wew/we/')

使用的时候推荐使用反向解析

JsonResponse

返回Josn数据的请求,通常用在异步请求上

def get_josn(req):
    data = [1,2,3,45]
    return JsonResponse({"data":data})

加载静态资源

在工程的目录下创建一个static目录

Django笔记(页面复用之包含、自定义404页面、request对象和respons对象、加载静态资源)

修改settings.py文件

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

前端引用

{%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>