Django之POST和GET请求

  • HttpRequest对象
    服务器接收到http请求后,会创建一个HttpRequest对象,模块Django.http中定义HttpRequest对象API。

  • 属性

# get_post app下面的视图文件views.y
def index(request):
    print(request)
    print(request.path) # 请求的页面路径
    print(request.method) # 请求的方式
    print(request.encoding) # 请求的编码方式
    print(request.get_host())  # IP和端口
    print(request.get_port())  # 端口
    return render(request,'get_post/index.html')

# 输出结果

<WSGIRequest: GET '/get_post/index/'> # request对象
/get_post/index/  # 请求的路径
GET   # 请求的方式
None   # 编码的默认格式 utf_8
127.0.0.1:8001    # IP和端口
8001        # 端口
# get_post app下面的视图文件views.y
from django.urls import path
from . import views
urlpatterns = [
    path('index/',views.index)
]

模板文件


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>请求与相应</title>
</head>
<body>
<form action="" method="get">
    {% csrf_token %}
    用户名<input type="text" name="user" placeholder="请输入用户名"> <br>&emsp;<input type="password" name="pwd" placeholder="输入密码"> <br>
    <button type="submit">提交</button>
</form>
</body>
</html>
  • GET请求
# 视图文件下的视图函数
def get_test(request):
    print(request.method)
    user = request.GET.get('user')
    pwd = request.GET.get('pwd')
    print(user,pwd)
    return HttpResponse('提交成功')



# 运行结果
GET   #请求方式
123 123  # 一个是账户一个是密码

模板文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>请求与相应</title>
</head>
<body>
<form action="{% url 'get_test' %}" method="get">
    {% csrf_token %}
    用户名<input type="text" name="user" placeholder="请输入用户名"> <br>&emsp;<input type="password" name="pwd" placeholder="输入密码"> <br>
    <button type="submit">提交</button>
</form>
</body>
</html>

模板文件运行结果
模板文件运行结果

  • 地址栏

http://127.0.0.1:8001/get_post/get_test/?csrfmiddlewaretoken=wV77ER851isy3WT01AVHw9VefC87fMArbCYJVzgF7JF8Ra2KZZeLNNrkB4wGnMk1&user=123&pwd=123

可以看出参数和传输的敏感信息都可以看到显然当我们传输密码之类的信息显然不行则则需要post请求

  • post请求
# 视图文件下的视图函数
def post_test(request):
    print(request.method)
    user = request.POST.get('user')
    pwd = request.POST.get('pwd')
    print(user, pwd)
    return HttpResponse('提交成功')


# 运行结果
POST  # 请求方式
123 123  # user和pwd的值

模板文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>请求与相应</title>
</head>
<body>
<form action="{% url 'post_test' %}" method="post">
    {% csrf_token %}
    用户名<input type="text" name="user" placeholder="请输入用户名"> <br>&emsp;<input type="password" name="pwd" placeholder="输入密码"> <br>
    <button type="submit">提交</button>
</form>
</body>
</html>
  • post地址栏
    http://127.0.0.1:8001/get_post/post_test/

则可以看出避免了敏感信息的显示
post不会再地址栏中展示参数如果用传输敏感信息则使用post方式最好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值