06 - Django 视图view
HttpRequest 和 HttpResponse
Django中的视图主要用来接受Web请求,并做出响应。
视图的本质就是一个Python中的函数
视图的响应分为两大类
- 以
Json数据形式返回(JsonResponse) - 以网页的形式返回
- 重定向到另一个网页 (HttpResponseRedirect)
- 错误视图(4XX,5XX) (HttpResponseNotFound, HttpResponseForbidden, HttpResponseNotAllowed 等)
- 视图响应过程:
- 浏览器输入-> urls路由匹配 -> 视图响应 -> 回馈到浏览器
- 视图参数:
- 一个HttpRequest的实例,一般命名为request
- 通过ur1正则表达式传递过来的参数
- 位置:
通常在应用下的views.py中定义
- 错误视图:
- 404视图(页面没找到)
- 400视图(客户操作错误)
- 500视图(服务器内部错误)
HttpRequest
服务器在接收到Http请求后,会根据报文创建HttpRequest对象
视图中的第一个参数就是HttpRequest对象
Django框架接收到http请求之后会将http请求包装为HttpRequest对象,之后传递给视图。
request常用属性和方法:属性:path 请求的完整路径method 请求的方法,常用GET, POSTGET 类似字典的参数,包含了get的所有参数POST 类似字典的参数,包含了post所有参数FILES 类似字典的参数,包含了上传的文件COOKIES 字典,包含了所有COOKIEsession 类似字典,表示会话META 一个字典,包含了请求的元信息,例如:'REMOTE_ADDR' 客户端的IP地址方法:is_ajax() 判断是否是ajax请求,通常用在移动端和JS中get_full_path() 返回包含参数字符串的请求路径QueryDict:类似字典的对象。与字典的区别:可以存在相同的键。QueryDict中数据获取方式:dict['uname'] 或 dict.get('uname') 获取指定key对应的第一个值dict.getlist('uname') 获取指定key对应的所有值
HttpResponse
HttpResponse由程序员自己创建:1)不使用模板,直接调用HttpResponse(),返回HttpResponse对象。2)调用模板,进行渲染。使用renderrender(request, template_name[, context])request 请求体对象template_name 模板路径context 字典参数,用来填坑
属性:content 返回的内容charset 编码格式status_code 响应状态码(2xx, 3xx, 4xx, 5xx)
方法:write(xxx) 直接写出文本flush() 冲刷缓冲区set_cookie(key, value='xxx', max_age=None) 设置cookiedelete_cookie(key) 删除cookieHttpResponse子类HttpResponseRedirect响应重定向:可以实现服务器内部跳转return HttpResponseRedirect('/grade/2030')使用的时候推荐使用反向解析JsonResponse返回Json数据的请求,通常用在异步请求上JsonResponse(dict)返回json数据时, Content-type是application/json
views.py
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
from django.shortcuts import redirect, render# Create your views here.def myrequest(request):print(request) # <WSGIRequest: GET '/request/?name=lisi&age=18'># request对象的属性和方法print(request.method) # GET / POST/ PUT/ DELETEprint(request.GET) # QueryDict对象(类字典对象,可以使用字典方法),包含GET请求参数print(request.GET['name']) # 如果name不存在,会报错print( request.GET.get('name')) # 如果name不存在,返回None或者默认值print(request.GET.getlist('name')) # 如果name不存在,返回空列表, 否则返回列表print(request.POST) # QueryDict对象,包含POST请求参数print(request.path) # 请求路径/request/print(request.get_full_path()) # 请求完整路径 (包含查询字符串)/request/?name=lisi&age=18print(request.COOKIES) # 字典对象,包含cookie信息print(request.session) # 字典对象,包含session信息print(request.FILES) # 如果是上传文件,返回一个文件对象,否则返回None,前端上传的文件# print(request.META) # 字典对象,包含HTTP请求头信息print(request.META['REMOTE_ADDR']) return HttpResponse("Hello Django!")def myresponse(request):# 1. 直接返回字符串# return HttpResponse("Hello Django!")# 2. 传入模板文件, 前后端不分离# return render(request, 'index.html')# 3. 重定向, redirect, reverse# return redirect('/request/')# return HttpResponseRedirect('/request/')# 4. 返回json数据, 前后端分离的方式# data = {'name': 'lisi', 'age': 18}# return JsonResponse(data)response = HttpResponse()response.content = 'Hello Django!'response.status_code = 200return response相关文章:
06 - Django 视图view
HttpRequest 和 HttpResponse Django中的视图主要用来接受Web请求,并做出响应。 视图的本质就是一个Python中的函数 视图的响应分为两大类 以Json数据形式返回(JsonResponse)以网页的形式返回 重定向到另一个网页 (HttpResponseRedirect)错误视图(4XX,5XX) (Htt…...
基于云计算的资源管理系统
基于云计算的资源管理系统是一种将云计算技术与资源管理技术相结合,以实现资源高效利用和管理的系统。以下是对该系统的详细分析: 一、系统概述 云计算是一种基于网络的计算模式,通过将计算资源和数据存储在云端服务器上,使用户…...
从0入门自主空中机器人-3-【环境与常用软件安装】
关于本课程: 本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程,包含了从硬件组装、机载电脑环境设置、代码部署、实机实验等全套详细流程,带你从0开始,组装属于自己的自主无人机,并让…...
electron node-api addon开发
解决方案入口 拷贝日志以及json等第三方源码 增加包含目录 编写接口 默认模板已经有一个回调函数了 照葫芦画瓢就行 其中几个重要的点要注意 1.参数传入 比如如下的例子: 头文件定义: public:下增加 Napi::Value StartAnswer (const Napi::Callb…...
如何在嵌入式系统或计算机系统中验证boot程序
在嵌入式系统或计算机系统中,验证boot程序(引导程序)的正确性至关重要,因为它负责初始化系统硬件、加载操作系统内核,并设置系统环境。以下是一些常用的验证boot程序的方法: 一、硬件验证 示波器与逻辑分…...
scala基础学习_运算符
文章目录 scala运算符算术运算符关系运算符逻辑运算符位运算符其他运算符赋值运算符 scala运算符 在 Scala 中,运算符通常被定义为方法。这意味着你可以将运算符视为对象上的方法调用。以下是一些常用的运算符及其对应的操作: 算术运算符 :…...
【ANGULAR网站开发】初始环境搭建
1. 初始化angular项目 1.1 创建angular项目 需要安装npm和nodejs,这边不在重新安装 直接安装最新版本的angular npm install -g angular/cli安装指定大版本的angular npm install -g angular/cli181.2 启动angular 使用idea启动 控制台启动 ng serve启动成功…...
【Java】面试题 并发安全 (2)
文章目录 可重入锁(ReentrantLock)知识总结1. 可重入锁概念与特点2. 基本语法与使用注意事项3. 底层实现原理4. 面试回答要点 synchronized与lock的区别死锁相关面试题讲解死锁产生的四个条件ConcurrentHashMap2. JDK1.7的ConcurrentHashMap结构添加数据…...
springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
这个包丢失了 启动不了 起因是pom中加入了 <tomcat.version></tomcat.version>版本指定,然后idea自动编译后,包丢了,删除这个配置后再也找不回来, 这个包正常在 <dependency><groupId>org.springframe…...
React 组件的通信方式
在 React 应用开发中,组件之间的通信是构建复杂用户界面和交互逻辑的关键。正确地实现组件通信能够让我们的应用更加灵活和易于维护。以下是几种常见的 React组件通信方式。 一、父子组件通信 1. 通过 props 传递数据(父组件向子组件传递数据࿰…...
WAV文件双轨PCM格式详细说明及C语言解析示例
WAV文件双轨PCM格式详细说明及C语言解析示例 一、WAV文件双轨PCM格式详细说明1. WAV文件基本结构2. PCM编码方式3. 双轨PCM格式详细说明二、C语言解析WAV文件的代码示例代码说明一、WAV文件双轨PCM格式详细说明 WAV文件是一种用于存储未压缩音频数据的文件格式,广泛应用于音频…...
【ES6复习笔记】数值扩展(16)
介绍 在 JavaScript 中,数值扩展提供了一些额外的功能,使得处理数值变得更加方便。本教程将介绍一些常用的数值扩展方法和属性。 1. Number.EPSILON Number.EPSILON 是 JavaScript 表示的最小精度。它的值接近于 2.2204460492503130808472633361816E-…...
百度热力图数据日期如何选择
目录 1、看日历2、看天气 根据研究内容定,一般如果研究城市活力的话,通常会写“非重大节假日,非重大活动,非极端天气等”。南方晴天不多,有小雨或者中雨都可认为没有影响,要不然在南方很难找到完全一周没有…...
Vue.js 高级组件开发:设计模式与实践
Vue.js 高级组件开发:设计模式与实践 引言一、组合式 API 与动态依赖注入1. 基于 provide/inject 的动态依赖2. 动态依赖注入与懒加载 二、动态渲染与自定义渲染函数1. 使用 Render 函数动态生成内容2. 自定义 vnode 操作 三、复杂场景下的动态表单生成与验证四、高…...
《一文读懂卷积网络CNN:原理、模型与应用全解析》
《一文读懂卷积网络CNN:原理、模型与应用全解析》 一、CNN 基本原理大揭秘(一)从人类视觉到 CNN 灵感(二)核心组件详解 二、经典 CNN 模型巡礼(一)LeNet-5:开山鼻祖(二&a…...
MONI后台管理系统-数据敏感字段存储加密
前言: 在我们数据库中,存在很多的敏感数据,如用户表中,存在用户电话、身份证号、邮箱等属于用户的敏感信息,我们通常在存入数据库后,将其进行加密存储,以此来保证数据安全性。 …...
熟悉各类游戏设计模式的用途与限制,如 factory、strategy、mvc、object pool 等
良好的系统分析与设计能力要求开发者熟悉并正确运用各种设计模式来解决特定问题。设计模式是一种针对特定问题的通用解决方案,可提高代码的可复用性、可维护性和可扩展性。以下是对一些常见游戏设计模式的详细分析,包括其用途、限制和代码示例。 一、工厂…...
【RabbitMQ高级篇】消息可靠性问题(1)
目录 1.消息可靠性 1.1.生产者消息确认 1.1.1.修改配置 1.1.2.定义Return回调 1.1.3.定义ConfirmCallback 1.2.消息持久化 1.2.1.交换机持久化 1.2.2.队列持久化 1.2.3.消息持久化 1.3.消费者消息确认 1.3.1.演示none模式 1.3.2.演示auto模式 1.4.消费失败重试机制…...
ASP.NET |日常开发中常见问题归纳讲解
ASP.NET |日常开发中常见问题归纳讲解 前言一、性能问题1.1 数据库访问性能1.2 视图状态(在ASP.NET Web Forms 中) 二、安全问题2.1 SQL 注入2.2 跨站脚本攻击(XSS) 三、状态管理问题3.1 会话状态(Session …...
【【深入浅出TinyRisc-v】】
深入浅出TinyRisc-v 本代码参考于 https://gitee.com/liangkangnan/tinyriscv 自己理解之后又重新写了一遍 tinyriscv.v // 涓嬮潰鏄鏁翠釜top妯″潡鐨勪功鍐? module tinyriscv(input clk ,input rst_n …...
可视化是对比原始数据和填补数据的强大工具。你可以使用箱线图、密度图或散点图来可视化原始数据和填补后的数据
下面的内容摘录自《用R探索医药数据科学》专栏文章的部分内容(原文5665字)。 2篇2章6节:R的多重填补法中随机回归填补法的应用,MICE包的实际应用和统计与可视化评估-CSDN博客 在数据分析中,缺失数据是常见且具有挑战性…...
告别PASCAL VOC!手把手教你用Labelme标注数据,为UNet构建自己的多分类语义分割数据集
告别PASCAL VOC!手把手教你用Labelme标注数据,为UNet构建自己的多分类语义分割数据集 在计算机视觉领域,语义分割一直是热门研究方向之一。不同于简单的目标检测,语义分割需要对图像中的每一个像素进行分类,这使其在医…...
如何突破硬件限制?探索SwiftShader的高性能图形渲染革命
如何突破硬件限制?探索SwiftShader的高性能图形渲染革命 【免费下载链接】swiftshader SwiftShader is a high-performance CPU-based implementation of the Vulkan graphics API. Its goal is to provide hardware independence for advanced 3D graphics. 项目…...
告别黑屏!手把手教你为NT35510屏幕适配TouchGFX显示驱动(基于STM32CubeIDE)
深度解析NT35510屏幕与TouchGFX的驱动适配实战 在嵌入式GUI开发领域,TouchGFX凭借其流畅的动画效果和高效的渲染引擎,已成为STM32平台上的首选框架之一。然而,当开发者尝试在非官方支持的屏幕上使用TouchGFX时,底层显示驱动的适配…...
ENVI 5.6 批量处理高分卫星数据(GF-2/6/7)保姆级教程:从App Store安装到一键正射融合
ENVI 5.6 高分卫星数据批量处理实战指南:从环境配置到自动化流程优化 第一次接触高分卫星数据处理时,面对满屏的专业术语和复杂的操作流程,我完全不知所措。直到掌握了ENVI 5.6的批量处理技巧,才发现原来遥感数据处理可以如此高效…...
RDF实战指南:从入门到精通
1. RDF基础入门:从概念到实战 第一次接触RDF时,我也被那些专业术语搞得一头雾水。直到把它想象成"资源界的快递单",才突然开窍——就像快递单记录着"谁寄了什么给谁",RDF用主语-谓语-宾语的三元组记录着"…...
SQL调优实战手册:索引、并行、参数调优一站式解决方案
做企业级业务开发久了,都会碰到同一个难题:数据量越积越多,原本跑得顺畅的SQL慢慢开始变慢,轻则接口响应延迟,重则整个系统卡顿,甚至影响核心业务流转。尤其是用KingbaseES这款国产企业级数据库(…...
Qwen3Guard-Gen-8B真实案例:如何用AI模型自动拦截不当言论
Qwen3Guard-Gen-8B真实案例:如何用AI模型自动拦截不当言论 1. 引言:内容安全的新挑战 在数字内容爆炸式增长的今天,各类平台都面临着内容审核的巨大压力。传统的关键词过滤和规则匹配系统已经难以应对日益复杂的网络环境,特别是…...
Ostrakon-VL-8B效果展示:AI识别货架商品、检查消防通道真实案例
Ostrakon-VL-8B效果展示:AI识别货架商品、检查消防通道真实案例 1. 零售行业的视觉智能革命 走进任何一家超市或餐厅,你都会看到员工忙碌地进行各种检查:商品是否摆放整齐、货架是否需要补货、消防通道是否畅通。这些看似简单的工作&#x…...
Qwen3-0.6B-FP8效果展示:实时流式输出延迟<120ms(RTX3060实测)
Qwen3-0.6B-FP8效果展示:实时流式输出延迟<120ms(RTX3060实测) 你还在为本地部署大模型需要高端显卡而烦恼吗?或者觉得那些动辄几十GB的模型下载起来太费劲?今天,我要给你展示一个完全不同的解决方案—…...
