Django的请求和响应

“”"
视图
1就是python函数
2函数的第一个参数 就是请求 和请求相关的 它是HttpRequest的实例对象
3 我们必须要返回一个响应 相应是HttpResponse的实例对象/子类实例对象
“”"

def redic(request):

render参数说明

1 当前的请求

2 模板文件

3 context 传递的参数

books=BookInfo.objects.all()

context={

‘books’:books

}

实现业务逻辑

1先把所有书籍查询出来

2组织数据

3 将组织好的数据传递给模板

return render(request,‘index.html’,context=context)

def index(request):
“”"
登录成功之后需要跳转到首页
注册成功后需要跳转到首页
“”"
# from django.urls import reverse

# viewname 通过试图名字
# 路由是动态获取的
# path=reverse('index')

# 如果我们设置了namespance 这个时候需要通过 namespace:name 来获取路由
# path=reverse('book:index')
# print(path)

# 重定向
from django.shortcuts import render, redirect
# return redirect('path')
return HttpResponse("index")

def detail(request, category_id, book_id):
# print(book_id,category_id)
# query_paras = request.GET

# queryDict只能获取一键多值的时候,只能获取最后的一个值
# 我们想要获取,一键一值的化,就需要使用QueryDict的get方法
# 我们想要获取 一键多值的化,就需要使用 QueryDict的getlist方法

# username=query_paras['name']
# password=query_paras.get('passward')
# print(username,password)

###############################POST表单数据##################################

data=request.POST

print(data)

###############################POST JSON 数据##################################

import json

# json是双引号

{

“name”:“baidu”

}

body=request.body #获取的是字符串

body_str=body.decode()

json_data = json.loads(body_str)

print(json_data)

###############################请求头 数据##################################

print(request.META)

############################### HttpResponse ##################################

HttpResponse

content 传递字符串 不要传递 对象,字典等数据

statue HTTP status code must be an integer from 100 to 599

content_type 是MIME类型

语法形式是:大类/小类型

return JsonResponse(‘detail’, status=200)

############################### JSONResponse ##################################
# data = {“name”: “itcast”}
# print(data)
# return JsonResponse(data)
###############################页面跳转 重定向##################################
path=reverse(‘book:index’)
return redirect(path)

“”"
保存在客户端的数据叫做cookie
1流程
2看效果
3从http协议的角度深入掌握cookie的流程(原理)

cookie流程:
1 因为是第一次请求,所以没有任何的cookie信息
2 服务器接收到请求之后,没有看到cookie信息,他就设置cookie信息
3 服务器设置一个cookie,这个cookie 信息设置在相应中
4 浏览器接收这个响应中有cookie信息,name=itcast浏览器会将cookie信息保存在浏览器中
5 浏览器第二次及其之后的请求都会携带cookie信息
6服务器会接受到携带的cookie信息

保存在服务器的数据叫session

“”"
def set_cookie(request):
# 1先判断有没有cookie信息

扫描二维码关注公众号,回复: 12719735 查看本文章
# 2获取用户名
username=request.GET.get('username')
# 3因为我们假设没有cookie信息,我们服务器就要设置cookie信息
response=HttpResponse('set_cookie')
response.set_cookie('username',username)
# 4 返回响应
return response

猜你喜欢

转载自blog.csdn.net/h1751541643/article/details/113603871