Django视图系统(详细点我)
视图(接收请求和返回响应那部分)
一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。无论视图本身包含什么逻辑,都要返回响应。
有两种模式的视图:
1.基于函数的视图(FBV(function base view))
2.基于类的视图(CBV(class base view))
请求对象(request对象)
1. request.method --> 获取请求的方法(GET、POST等)
2. request.GET --> 通常用来获取URL里面的参数(通常是 路径后面跟?参数)
127.0.0.1:8000/edit_book/?id=1&name=yimi
request.GET --> {"id":1, "name":"yimi"}
request.GET.get("id")
3. request.POST --> 用来获取POST提交过来的数据
request.PSOT也是一个字典{"name":"value"}
request.POST.get("book_name")
请求相关的常用值
path_info 返回用户访问url,不包括域名
method 请求中使用的HTTP方法的字符串表示,全大写表示。
GET 包含所有HTTP GET参数的类字典对象
POST 包含所有HTTP POST参数的类字典对象
body 请求体,byte类型 request.POST的数据就是从body里面提取到的
注意:键值对的值是多个的时候,比如checkbox类型的input标签,select标签,需要用:
request.POST.getlist("hobby")
def edit_author(request):
if request.method == "POST":
#提交数据后也是先拿到要编辑的对象,getlis可以获得多个对象
edit_book = request.POST.getlist("book_id")
response
基础必备三件套
导入:
from django.shortcuts import HttpResponse, render, redirect
1. HttpResponse --> 返回字符串内容
2. render --> 返回一个html页面
3. redirect --> 返回一个重定向(告诉浏览器再去访问新的网址,就是直接跳转到新网站)
4. JsonResponse ---> 专门用来生成JSON编码的响应。
from django.http import JsonResponse
response = JsonResponse({'foo': 'bar'})
print(response.content)
b'{"foo": "bar"}'
默认只能传递字典类型,如果要传递非字典类型需要设置一下safe关键字参数。
response = JsonResponse([1, 2, 3], safe=False)
python 与 json 之间的数据类型的转换;json实际上就是字符串;
在python中序列化为 json.dumps; json.dump; 反序列化为json.loads;json.load;
在json中序列化为 json.stringfy();; 反序列化为json.parse();