Django框架之GET请求和POST请求简介

Posted Icy Hunter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django框架之GET请求和POST请求简介相关的知识,希望对你有一定的参考价值。

文章目录

请求与响应

请求是指浏览器通过HTTP协议发送给服务器端的数据,响应是指服务器端接收到请求后做相应的处理后再回复给浏览器端的数据

GET请求和POST请求

请求中,最常见和常用的也是最重要的请求就是GET请求和POST请求了,各自有优势,前者较快,后者较安全。

由于Django有一定的安全保护措施,目前为了方便看到POST的请求,可以关掉django的csrf验证。
在配置文件setting.py中将csrf验证注释即可

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

下面也是通过一个数据传输打印的小例子来理解。

urls.py:

from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
    path("test_get_post", views.test_get_post),
]

views.py:

from django.http import HttpResponse
POST_FORM = '''
<form method="post" action="/test_get_post">
用户名:<input type="text" name="uname">
<input type="submit" value="提交">
</form>
'''
def test_get_post(request):
    if request.method == "GET":
        print(request.GET.get("a", "no a"))
        print(request.GET.get("c", "no c"))
        print(request.GET.getlist("a"))
        return HttpResponse(POST_FORM)
    elif request.method == "POST":
        # 处理用户提交数据
        print(request.POST["uname"])
        print(request.POST.get("c", "no c"))
        print(request.POST.getlist("uname"))
        return HttpResponse("post is ok")
    else:
        pass

    return HttpResponse("test get post")

配置好访问
http://127.0.0.1:8000/test_get_post?a=100&c=5505
得到:

然后后台输出:


可以看到接收到了a和b的值
然后文本框随便输入一些

点击提交:

后台输出:

可以看到接收到了输入的数据。

以上是关于Django框架之GET请求和POST请求简介的主要内容,如果未能解决你的问题,请参考以下文章

Django 框架之视图函数(Views)

django之Ajax

Python Django之GET请求和POST请求及响应处理

3.Python Django之GET请求和POST请求及响应处理

9.1 Web 框架 django

Django简介