一、HttpRequest 对象
-
概述
服务器接收到客户端请求后,系统自动创建的对象(视图函数第一个参数)。 -
属性
path 请求路径 method 请求方法 GET get请求参数 POST post请求参数 FILES 上传文件 COOKIES cookie对象【会话技术】 SESSION session对象 【会话技术】
-
GET请求
# 参数获取 name = request.GET.get('name')
-
POST请求
# 参数获取 name = request.POST.get('name')
二、HttpResponse对象
-
概述
用于返回数据给客户端的。 -
HttpResponse()
response = HttpResponse(’hello')
-
render()
response = render(request,'index.html') response = render(request, 'index,html', status = 301)
-
redirect()
response = redirect('/meituan/')
- JsonResponse()
stu = {'name': 'zhangsan', 'age':20} response = JsonResponse(stu)
三、会话技术
-
概述
HTTP 无状态 【请求一次,返回对应的响应,称为一次会话】 会话技术:实现状态保持 为什么要使用会话保持? 在一定的时间段或操作中,跟踪请求者状态!【服务器就知道你谁】
类比:github HTTP,每次操作都需要输入用户名和密码【服务器才知道你是谁】
- 会话技术
cookie: 客户端会话技术 session: 服务器会话技术(要依托cookie) token: 手动session
四、会话技术cookie
```
# 注册:
def register(request):
if request.method == 'POST': # 注册操作
# 获取客户端的数据
username = request.POST.get('username')
password = request.POST.get('password')
tel = request.POST.get('tel')
# 保存到数据库
user = User()
user.u_name = username
user.u_password = password
user.u_tel = tel
user.save()
# 注册成功,直接重定向
response = redirect('/meituan/')
#设置cookie
response.set_cookie('username',user.u_name)
return response
# return HttpResponse('{}注册成功'.format(username))
elif request.method == 'GET' : # 获取注册页面
return render(request, 'register.html') # 进入注册页面
# 登录:
def login(request):
if request.method == 'POST': # 登录操作
username = request.POST.get('username')
password = request.POST.get('password')
# 根据用户名和密码,去数据库中找
# 能找到,登录成功
# 找不到,登录失败
users = User.objects.filter(u_name = username, u_password = password)
if users.exists(): # 用户存在
user = users.fist()
# 登录成功,直接重定向(到首页)
response = redirect('/meituan/')
return response
# return HttpResponse('{}登录成功'.format(user.u_name))
else: # 用户不存在
return HttpResponse('用户名或密码错误!')
elif request.method == 'GET': # 获取登录页面
pass
return None
# 退出登录:
def logout(request):
# 删除cookie
response = redirect('/meituan/')
response.delete_cookie('username')
return response
# 关于我们:
def about(request):
# 获取cookie
username = request.COOKIES.get('username')
return render(request, 'about.html', context={'username':username))
# 首页
def index(request):
# 获取用户名
username = request.COOKIES.get('username')
return render(request, 'meituan.html', context:{'username':username}
```
网友评论