IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【Django】python后端的POST与GET请求 -> 正文阅读

[Python知识库]【Django】python后端的POST与GET请求

简介POST与GET

超文本协议中总共四种数据交互方式:PUT、DELETE、POST、GET
对应数据处理的增、删、改、查
PUT、DELETE两种方式此处不做介绍
主要说下POST与GET,也就是改、查

协议中的区别

  1. http报文中标签不一致,一个是POST,一个是GET
  2. GET是直接将整个报文发出(这里不考虑MSS MTU这些因素),POST是先发header,再发body,发不发body也说两说,得看发完头对面回复什么

使用中的区别

如上述所言,POST与GET一个主要用于修改数据的场景,一个主要用于查询的场景。那么在功能以及权限上是有区分的,这里的区分将作用域实际Django代码中

开始整理代码

先来GET接口

在视图代码中加入下面代码,准备处理GET请求,由于前面讲过简单的GET的模板,这里就不用模板了。

def search_get(request):
    request.encoding = 'utf-8'
    if 'q' in request.GET and request.GET['q']:
        message = '你搜索的内容为: ' + request.GET['q']
    else:
        message = '你提交了空表单'
    return HttpResponse(message)

将search_get接口加入后端访问路径

path('search-get/', search.search_get),

很简单就能看出,这里先判断GET请求中是否存在字段‘q’, 存在的话将字段q读出来让http返回。
看下效果
在这里插入图片描述

再来整理POST接口代码

以前说过GET的模板应用,这里说下POST的模板应用。
建立模板html代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>域中四大:天大,地大,道大,人亦大</title>
    </head>
    <body>
        <form action="/search-post/" method="post">
            {% csrf_token %}
            <input type="text" name="q">
            <input type="submit" value="搜索">
        </form>

        <p>{{ last_input }}</p>
    </body>
</html>

再贴上处理POST请求的代码

def search_post(request):
    input_text ={}
    if request.POST:
        print(request)
        input_text['last_input'] = request.POST['q']
        print(request.POST)
    return render(request, "post_form.html", input_text)

之前说过,双大括号范围内的数据是用来留给render入参的。这里将POST的请求数据交给render的html入参。
还有个一指的注意东西:{% csrf_token %},这个是Django提供的防止伪装提交请求的功能。
在这里插入图片描述

访问本路径的请求参数

写了几天的代码了,每个处理请求接口的函数中都会有一个request入参,这个入参是什么?下面介绍:

HttpRequest

When a page is requested, Django creates an HttpRequest object that contains metadata about the request. Then Django loads the appropriate view, passing the HttpRequest as the first argument to the view function. Each view is responsible for returning an HttpResponse object.
大致翻译一下就是:
当一个页面被请求时,Django会创建一个包含请求元数据的HttpRequest对象。 然后Django加载相应的视图,将HttpRequest作为第一个参数传递给视图函数。 每个视图负责返回一个HttpResponse对象。

对了着重说下:所有属性值或者字段没有特殊说明,都是只读状态!
这个object中包含了哪些东西?

  1. scheme:确认是http还是https
  2. body
  3. path
  4. path_info:
  5. method:比如POST,比如GET
  6. encoding
  7. content_type
  8. content_params
  9. GET
  10. POST
  11. COOKIES
  12. FILES
  13. headers
  14. META
    14.1 CONTENT_LENGTH
    14.2 CONTENT_TYPE
    14.3 HTTP_ACCEPT
    14.4 HTTP_ACCEPT_ENCODING
    14.5 HTTP_ACCEPT_LANGUAGE
    14.6 HTTP_HOST
    14.7 HTTP_REFERER
    14.8 HTTP_USER_AGENT
    14.9 QUERY_STRING
    14.10 REMOTE_ADDR
    14.11 REMOTE_HOST
    14.12 REMOTE_USER
    14.13 REQUEST_METHOD
    14.14 SERVER_NAME
    14.15 SERVER_PORT
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:17:51  更:2022-04-27 11:18:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:38:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码