django捕获url参数

前后端交互的实现就是通过前后台之间数据的交换过程,所以如何捕获前端url中的参数就是学习django中很重要的一步。而数据交换的过程我们使用术语称为:request和response

 

在编辑视图函数时,我们都会做一个request形参的入参,这个形参就是HttpRequest类的对象,包含了浏览器请求的信息

一、request的属性

path:一个字符串,表示请求的页面的完整路径,不包含域名和参数部分,仅显示url部分

method:一个字符串,表示请求使用的http方法

encoding:一个字符串,表示提交的数据的编码方式

GET:QueryDict对象,类似于字典,包含get请求方式的所有参数

POST:QueryDict对象,类似于字典,包含post请求方式的所有参数

FILES:一个类似于字典的对象,包含所有的上传文件

COOKIES:一个标准的python字典,包含所有cookie,键和值都为字符串

session:一个既可读又可写的类似于字典的对象,表示当前的会话,只有当django启用会话的支持时才可用

二、request中POST和GET属性演示

获取POST和GET请求中的参数有两种方法:

1、通过get()方法,入参请求参数名:request.POST.get(参数名) / request.GET.get(参数名)

2、类似于字典,通过访问key来获取value:request.POST[参数名]/request.GET[参数名]

需求:完成一个简单的登录效果,如果用户登录成功就跳转到首页,否则继续停留在登陆页面

登录页面:/login

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
<form method="post" action="/login_check">
    用户名:<input type="text" name="username" value="{{ username }}"><br>
    密码:<input type="password", name="password"><br>
    <input type="checkbox" name="remember">记住用户名<br>
    <input type="submit" value="登录">
</form>
</body>
</html>

视图函数:

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')

最后,代码效果演示截图就不添加了,各位可以自行尝试下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值