Django基础——Django视图系统

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();

  

原文地址:https://www.cnblogs.com/zenghui-python/p/10800175.html