Django学习记录02

1.请求与响应

1.1get与post的区别

get 一般是从url输入地址,会调用get请求
post 一般是内部数据传输
# get请求
def something(request):
    # req是一个对象,封装了用户发送过来的所有请求相关数据
    # 1.获取请求方式  http://localhost:8000/something
    # print(request.method)
    
    # 2.在url上传递值  http://localhost:8000/something/?n1=123&n2=999
    # print(request.GET)
# post请求
直接利用表单传输,而不需要使用url

{# django的安全性措施,必须加该句话#} {% csrf_token %} {{ error }}

1.2 Django响应的几种方式

def something(request):
    req是一个对象,封装了用户发送过来的所有请求相关数据

    响应 1.响应请求者的请求
    return HttpResponse("返回浏览器,响应!")

    响应 2.读取html的内容+渲染,返还给浏览器字符串
    return render(request, "something.html")

    响应 3.重定向
    return redirect("http://www.baidu.com")

重定向

Django学习记录02_第1张图片

1.浏览器发出请求
2.django响应,告诉浏览器重定向的位置
3.浏览器向http://www.baidu.com发出请求
4.http://www.baidu.com响应浏览器

1.3 请求与相应案例分析

登录页面

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
head>
<body>
<h1>登陆页面h1>
<form method="post" action="/login/">
{#    django的安全性措施,必须加该句话#}
    {% csrf_token %}

    <input type="text" name="user" placeholder="用户名">
    <input type="password" name="pwd" placeholder="密码">

    <input type="submit" value="提交"><font style="color: red"> {{ error }}font>
form>
body>
html>

{% csrf_token %} 常见的Django安全性方式

DJango实现

1.接收浏览器请求与响应

	若是在url中输入访问地址(get请求),则响应登陆界面
	若为表单的post请求,则利用request.POST获取接收表单传来的字典封装的数据,进行比对
2.对于post请求,进行比对后,比对成功响应浏览器,重定向;比对失败,返回登陆页面
def login(request):
    # get 请求,url所请求的
    # post请求,内部的数据传输
    error = ''
    # 在url中输入地址(get请求),则返回登陆页面
    if request.method == 'GET':
        return render(request, 'login.html', {"error": error})

    # 若是post请求,则获取数据(返回一个字典{"name":"value"})
    print(request.POST)
    # 获取数据
    username = request.POST.get("user")
    password = request.POST.get("pwd")

    if username == 'admin' and password == '123':
        return redirect('https://www.chinaunicom.com/')

    error = '登陆失败'
    return render(request, 'login.html', {"error": error})

你可能感兴趣的:(Python,django,学习,sqlite)