django捕获url参数

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

django捕获url参数_第1张图片

 

在编辑视图函数时,我们都会做一个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




    
    登录


用户名:
密码:
记住用户名

视图函数:

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

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

你可能感兴趣的:(#django,Python)