• django HttpRequest对象


            概述:
                服务器接收http请求后,会根据报文创建HttpRequest对象
                视图的第一个参数就是HttpRequest对象
                django创建的,之后调用视图时传递给视图
            属性
                path:请求的完整路径(不包括域名和端口)
                method:表示请求的方式,常用的有GET,POST
                encoding:表示浏览器提交的数据的编码方式,一般为utf-8
                GET:类似于字典的对象,包含了get请求的所有参数
                POST:类似于字典的对象,包含了post请求的所有参数
                FILES:类似字典的对象,包含了所有上传的文件
                COOKIES:字典,包含所有的cookie
                session:类似字典的对象,表示当前会话
            方法
                is_ajax():如果是通过XMLHttpRequest发起的,返回 True
            QueryDict对象
                request对象中的GET,POST都属于QueryDict对象
                方法:
                    get():
                        根据键获取值,只能获取一个值
                        www.sunck.wang/abc?a=1&b=2&c=3
                    getlist()
                        将键的值以列表的形式返回
                        可以获取多个值
                        www.sunck.wang/abc?a=1&b=2&c=3
            GET属性
                获取浏览器传递过来数据
                www.sunck.wang/abc?a=1&b=2&c=3
                urls.py
                url(r'^get1', views.get1),   #结尾不能加$,否则无法匹配
                views.py
                def get1(request):
                    a = request.GET.get('a')
                    b = request.GET.get('b')
                    c = request.GET.get('c')
                    return HttpResponse(a + " " + b + " " + c)
    
                www.sunck.wang/abc?a=1&a=2&c=3
                urls.py
                url(r'^get2', views.get2),
                views.py
                def get2(request):
                    a = request.GET.getlist('a')
                    a1 = a[0]
                    a2 = a[1]
                    c = request.GET.get('c')
                    return HttpResponse(a1 + " " + a2 + " " + c)
            POST属性
                使用表单模拟POST请求
                关闭CSRF:projectprojectsettings.py
                    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',
                    ]
                示例:
                    def showregist(request):
                        return render(request, 'myApp/regist.html',)
    
                    def regist(request):
                        name = request.POST.get("name")
                        gender = request.POST.get("gender")
                        age = request.POST.get("age")
                        hobby = request.POST.getlist("hobby")
                        print(name)
                        print(gender)
                        print(age)
                        print(hobby)
                        return HttpResponse("regist")
                路径:
                    url(r'^showregist/$', views.showregist),
                        url(r'^showregist/regist/$', views.regist),
                页面:
                       <!doctype html>
                    <html lang="en">
                    <head>
                        <meta charset="UTF-8">
                        <meta name="viewport"
                              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
                        <meta http-equiv="X-UA-Compatible" content="ie=edge">
                        <title>注册</title>
                    </head>
                    <body>
                        <form action="regist/" method="post">
                            姓名:<input type="text" name="name" value=""/>
                            <hr>
                            性别:<input type="radio" name="gender" value="1">男<input type="radio" name="gender" value="0">女
                            <hr>
                            爱好:<input type="checkbox" name="hobby" value="power"/>权利<input type="checkbox" name="hobby" value="money">金钱<input type="checkbox" name="hobby" value="beauty">美女<input type="checkbox" name="hobby" value="Tesla">Tesla
                            <hr>
                            <input type="submit" value="注册">
                        </form>
                    </body>
                    </html>
  • 相关阅读:
    python-django-自定义分页
    self.user = serializer_field.context['request'].user KeyError: 'request
    无法ssh远程的解决办法
    关于put和patch区别的一篇文章
    一遍关于django rest framework serializer比较详细的笔记
    vim 简单配置(根据编程语言不同,自动缩进)
    django rest framework 的api返回html
    django rest frmaework jwt认证
    django 信号
    刘江的博客
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/10356746.html
Copyright © 2020-2023  润新知