Django框架之视图HttpRequest对象

news2024/10/7 10:18:53

本文主要是记录视图的HttpRequest对象属性、方法及示例。

概述

服务器接受http请求后,会根据报文创建httpRequest对象,包含所有请求中必须的数据;

视图方法的第一个参数就是HttpRequest对象;Django创建对象后,调用视图时传递给视图。

属性

path请求的完整路径(不包括域名和端口)

method 请求的方式,常用的方式有GET/POST

encodind 表示浏览器提交的编码方式

get 类似字典的对象,包含了get请求的所有参数

POST 类似字典的对象,包含了post请求的所有参数

FILES 类似字典的对象,包含了所有上传的文件

COOKIES 字典,包含所有的cookie

session 类似字典的对象,表示当前会话

示例:

def get_attributes(request):

    """ 属性 """

    print(request.path)

    print(request.method)

    print(request.encoding)

    print(request.GET)

    print(request.POST)

    print(request.FILES)

    print(request.COOKIES)

    print(request.session)

    return HttpResponse('attributes')

效果:

方法

is_ajax() :如果是通过XMLHttpRequest发起的,返回True。

QuerDict对象:request对象中的GET、POST都属于QueryDict对象。

获取参数方法

get() 根据键获取值,只能获取一个值。

getlist() 将键的值以列表的形式返回,可以获取多个值。

GET属性

设置路由

path('getParam1', views.get_param1, name='getParam1'),
path('getParam2', views.get_param2, name='getParam2'),

获取单个值

获取浏览器get传递的单个参数

请求地址

http://127.0.0.1:8000/myapp/getParam1?a=1&b=2&c=3

视图方法

def get_param1(request):
    """获取GET请求参数方法1 使用get方法 """


    a = request.GET.get('a')
    b = request.GET.get('b')
    c = request.GET.get('c')

    return HttpResponse(a + ':' + b + ':' + c)

同属性多个值

请求地址

http://127.0.0.1:8000/myapp/getParam2?a=1&a=2&b=3

视图方法

def get_param2(request):
    """获取GET请求参数方法2 使用getlist方法 """

    a = request.GET.getlist('a')
    a1 = a[0]
    a2 = a[1]
    b = request.GET.get('b')

    return HttpResponse(a1 + ':' + a2 + ':' + b)

POST属性

设置路由

path('postParam', views.post_param, name='postParam'),
path('storeParam', views.store_param, name='storeParam'),

设置form表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>POST提交测试</title>
</head>
<body>

<h2>学生信息登记</h2>

<form action="/myapp/storeParam" method="post">
  名称:<input type="text" name="name"><br>

  性别:
  <input type="radio" name="gender" value="False">男
  <input type="radio" name="gender" value="False">女
  <br>

  年龄:<input type="text" name="age">
  <br>

  爱好:
  <input type="radio" name="hobby" value="足球">足球
  <input type="radio" name="hobby" value="篮球">篮球
  <input type="radio" name="hobby" value="乒乓球">乒乓球
  <br>

  描述:<textarea name="desc" id="" cols="30" rows="10"></textarea>
  <br>

  <input type="submit" value="提交">
</form>
</body>
</html>

视图方法

def post_param(request):
    """ 显示form表单页面 进行post提交 """

    return render(request, 'myapp/postTest.html')


def store_param(request):
    """ 获取POST请求参数方法 """

    name = request.POST.get('name')
    gender = request.POST.get('gender')
    age = request.POST.get('age')
    hobby = request.POST.get('hobby')
    desc = request.POST.get('desc')


    print('名称:' + name)
    print('性别:' + '男' if gender else '女')
    print('年龄:' + age)
    print('爱好:' + hobby)
    print('描述:' + desc)
    return HttpResponse('学生信息登记')

表单填写提交后,可通过命令行查看执行情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/509656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

本地提权漏洞分析【网络安全】

0. 前言 CVE-2023-21752 是 2023 年开年微软第一个有 exploit 的漏洞&#xff0c;原本以为有利用代码会很好分析&#xff0c;但是结果花费了很长时间&#xff0c;难点主要了两个&#xff1a;漏洞点定位和漏洞利用代码分析&#xff0c;欢迎指正。 1. 漏洞简介 根据官方信息&a…

chatgpt中文意思——预训练生成聊天模型

"ChatGPT"相关的英文表达 ChatGPT 这个名字由两部分组成&#xff1a;Chat 和 GPT。 Chat 是聊天&#xff0c;而GPT是Generative Pretrained Transformer的缩写&#xff1a;预训练生成模型。因此&#xff0c;ChatGPT的意思是预训练生成聊天模型。 简单来说就是一个预先…

第五十一章 Unity Input Manager 输入系统(下)

本章节我们就来使用水平轴和垂直轴来控制游戏物体的移动和旋转。我们之前大致讲过&#xff0c;游戏物体移动最重要的是方向&#xff0c;速度和时间三个要素&#xff0c;同样旋转也是。接下来&#xff0c;我们将之前创建的地形场景导入进来&#xff0c;如下所示 然后将之前的“M…

OpenAI又火一个新项目,已开源...

大家好&#xff0c;我是 Jack。 OpenAI 又有新动作了&#xff0c;开源发布 Shap-E。 今天&#xff0c;我继续手把手教学。 算法原理、环境搭建、效果测试&#xff0c;一条龙服务&#xff0c;尽在下文&#xff01; 一、Shap-E 效果 Shap-E 算法的功能&#xff0c;简单来讲就…

第五十二章 Unity Input System 新输入系统

新输入系统InputSystem是2019年Unity新推出的插件。请注意&#xff0c;Unity默认使用旧的Input Manager&#xff0c;新的Input System处于未启用状态。当你安装Input System组件时&#xff0c;Unity会询问你是否启用新的输入系统。如果你选择Yes&#xff0c;Unity会启用新的并禁…

8通道高速同步采集板卡设计原理图与调试经验中文资料分享

采集卡实物图及功能框图如下 青翼型号-FMC128 FMC128功能框图 FMC148实物图 FMC148功能框图 FMC168实物图 FMC168功能框图 板卡对比如下图 青翼型号 通道数 采集分辨率 采样率 FMC1288通道16bit250MSPSFMC14814bit500MSPS/1GSPS/1.25GSPSFMC1682GSPS/2.6GSPS/3GSPS 技术指标FM…

Android 套壳本地html 生成apk

参考了:https://www.jianshu.com/p/ebf7948f3796 首页是前端会给到你html文件 目录基本上是这样的 image.png 步骤1: 创建assets目录 用户安卓studio 新合建工程就不写了 &#xff0c;下面的图是如何创建assets资源目录&#xff1a; image.png image.png 步骤2&#xff1a;拷贝…

JVM-类加载机制

类的生命周期 ​ 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中&#xff0c;加载、验证、准备和初始化这四个阶段发生的顺序是确定的&#xff0c;而解析阶段则不一定&#xff0c;**它在某些情况下可以在初始化阶段之后开始&#xff0c;这是为…

ext-5 void GPIO1Pin23PinMuxSetup(void)含义

在阅读starterware里控制led的代码&#xff0c;GPIO初始化有个这个函数 void GPIO1Pin23PinMuxSetup(void) {HWREG(SOC_CONTROL_REGS CONTROL_CONF_GPMC_A(7)) CONTROL_CONF_MUXMODE(7); } 如果不熟悉可能看的一头雾水&#xff0c;这个含义是&#xff1a; 解释一下&#xff…

【Nginx】Nginx面试题

什么是Nginx&#xff1f; Nginx是一个 轻量级/高性能的反向代理Web服务器&#xff0c;用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡&#xff0c;他可以处理2-3万并发连接数&#xff0c;官方监测能支持5万并发&#xff0c;现在中国使用ngin…

U-boot常用命令(二)

FAT格式文件系统操作命令 有时候需要在uboot中对SD卡或EMMC中存储的文件进行操作&#xff0c;这时候就要用到文件操作命令。跟文件操作相关的命令有&#xff1a;fatinfo、fatls、fstype、fatload 和 fatwrite&#xff0c;但是这些文件操作命令只支持 FAT 格式的文件系统&#…

PCA(Principal Component Analysis,主成分分析)降维

1.PCA介绍 来源&#xff1a;视频https://www.bilibili.com/video/BV1E5411E71z/ 笔记&#xff1a;https://www.bilibili.com/read/cv23587690?spm_id_from333.999.0.0&jump_opus1 PCA就是找坐标系&#xff0c;使得数据在保留一维数据&#xff0c;损失是最小的。 目标&a…

Aescripts StyleX for AE(AI技术风格化插件)

Aescripts StyleX一款非常实用的视频风格和效果自动化处理插件&#xff0c;它提供了多种风格和效果、自动化处理、可自定义选项、支持多种分辨率、简单易用的界面和工具等功能&#xff0c;让用户可以轻松地为视频添加不同的风格和效果&#xff0c;并提高效率和准确性。StyleX 插…

基于STM32+RC522设计的门禁系统

一、项目背景 门禁系统是现代社会中非常重要的安全控制系统之一,其功能是在保障建筑物安全的同时,为合法用户提供便利。当前设计一种基于STM32+RC522的门禁系统设计方案,通过RFID-RC522模块实现了对用户卡的注册、识别及身份验证,通过控制SG90舵机实现门锁的开关,具有较高…

物联网架构和技术:如何实现物物互联和智能化控制

第一章&#xff1a;引言 物联网是一种新兴的技术领域&#xff0c;通过将物理设备、传感器和软件等连接起来&#xff0c;可以实现设备之间的互联互通&#xff0c;让各种设备可以进行数据交换和智能化控制。在这个数字化时代&#xff0c;物联网已经成为了连接万物的关键技术之一…

WiFi(Wireless Fidelity)基础(五)

目录 一、基本介绍&#xff08;Introduction&#xff09; 二、进化发展&#xff08;Evolution&#xff09; 三、PHY帧&#xff08;&#xff08;PHY Frame &#xff09; 四、MAC帧&#xff08;MAC Frame &#xff09; 五、协议&#xff08;Protocol&#xff09; 六、安全&#x…

程序设计入门——C语言 2023年5月9日

程序设计入门——C语言 一、基础理解1、什么是计算机&#xff1f;如何用计算机做事情&#xff1f;什么是应用软件&#xff1f;编程语言干啥的&#xff1f;计算机与人脑&#xff1f;学习编程能干啥&#xff1f;2、计算机-程序-算法3、解释语言vs编译语言 课程来源&#xff1a;链…

测试老鸟总结,性能测试常见瓶颈分析与调优,“我“也要卷出测试圈...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试过程中&a…

KingbaseES V8R3 集群运维系列 -- failover切换后集群自动恢复

​ 案例说明&#xff1a; KingbaseES V8R3集群默认在触发failover切换后&#xff0c;为保证数据安全&#xff0c;原主库需要通过人工介入后&#xff0c;恢复为新的备库加入到集群。在无人值守的现场环境&#xff0c;需要在触发failover切换后&#xff0c;主库可以自动恢复为新备…

jvm之图形化工具

写在前面 本文一起看下jvm图形化相关的工具&#xff0c;图形化的工具相比于命令行工具的好处是更加直观&#xff0c;也更容易分析问题。 1&#xff1a;jconsole 1.1&#xff1a;准备要连接的jvm进程 定义如下的类&#xff1b; package a.b; import java.util.concurrent.*…