前后端交互的实现就是通过前后台之间数据的交换过程,所以如何捕获前端url中的参数就是学习django中很重要的一步。而数据交换的过程我们使用术语称为:request和response
在编辑视图函数时,我们都会做一个request形参的入参,这个形参就是HttpRequest类的对象,包含了浏览器请求的信息
path:一个字符串,表示请求的页面的完整路径,不包含域名和参数部分,仅显示url部分
method:一个字符串,表示请求使用的http方法
encoding:一个字符串,表示提交的数据的编码方式
GET:QueryDict对象,类似于字典,包含get请求方式的所有参数
POST:QueryDict对象,类似于字典,包含post请求方式的所有参数
FILES:一个类似于字典的对象,包含所有的上传文件
COOKIES:一个标准的python字典,包含所有cookie,键和值都为字符串
session:一个既可读又可写的类似于字典的对象,表示当前的会话,只有当django启用会话的支持时才可用
获取POST和GET请求中的参数有两种方法:
1、通过get()方法,入参请求参数名:request.POST.get(参数名) / request.GET.get(参数名)
2、类似于字典,通过访问key来获取value:request.POST[参数名]/request.GET[参数名]
需求:完成一个简单的登录效果,如果用户登录成功就跳转到首页,否则继续停留在登陆页面
登录页面:/login
登录
视图函数:
def login(request):
"""登录页面"""
return render(request, 'bookset/login.html')
def login_check(request):
"""登录校验"""
# 1、获取提交的用户数据
name = request.POST.get('username')
# name = request.POST['username']
password = request.POST.get('password')
# 进行登录的校验
if name == 'xiaoming' and password == '123':
# 用户登录成功,跳转到首页
response = redirect('/index')
return response
else:
# 用户名密码错误跳转回登录页面
return redirect('/login')
最后,代码效果演示截图就不添加了,各位可以自行尝试下