Django视图Views

Views视图

HttpRequest 和HttpResponse
Django中的视图主要用来接受web请求,并做出响应。视图的本质就是一个Python中的函数视图的响应分为两大类
        1)以Json数据形式返回(JsonResponse)
        2)以网页的形式返回        

                2.1)重定向到另一个网页 (HttpResponseRedirect)

                2.2)错误视图(4xx,5xX)(HttpResponseNotFound,HttpResponseForbidden,HttpResponseNotAllowed等)
视图响应过程:
        浏览器输入->ur1s路由匹配->视图响应 ->回馈到浏览器视图参数:
                1)-个HttpRequest的实例,一般命名为reguest
                2)通过url正则表达式传递过来的参数
位置:
        通常在应用下的views.py中定义
        错误视图:

        1)404视图(页面没找到)
        2)400视图(客户操作错误)
        3)500视图(服务器内部错误)

用vscode创建一个新的项目

首先进入项目文件夹我会先创建一个虚拟环境

python3 -m venv myvenv  

进入虚拟环境

source myvenv/bin/activate

在虚拟环境中安装Django

pip3 install django==4.2

创建Django项目

django-admin startproject project2

尝试启动一下

python3 project2/manage.py runserver

创建一个新的App

django-admin startapp App

记得在setting.py里注册一下App 

并增加一个templates模版文件夹并配置 

HttpRequest

        服务器在接收到Http请求后,会根据报文创建HttpRequest对象
        视图中的第一个参数就是HttpRequest对象
        Django框架接收到http请求之后会将http请求包装为HttpRequest对象,之后传递给视图。
request常用属性和方法:
                属性:
                        path 请求的完整路径
                        method 请求的方法,常用GET,POST
                        GET 类似字典的参数,包含了get的所有参数
                        POST 类似字典的参数,包含了post所有参数
                        FILES  类似字典的参数,包含了上传的文件
                        COOKIES 字典,包含了所有COOKIE
                        session类似字典,表示会话
                        META[' REMOTE_ADDR' ]

                方法:is_ajax() 判断是否是ajax(),通常用在移动端和JS中
                        get_full_path() 返回包含参数字符串的请求路径.
QueryDict: 类字典的对象
        类似字典的数据结构。与字典的区别:可以存在相同的键。
        QueryDict中数据获取方式
                dict['uname ’] 或 dict.get ('uname)
                获取指定key对应的所有值

 大家可以挨个打印测试一下 看一下获取到的一些参数

  HttpResponse


服务器返回给客户端的数据
HttpResponse由程序员自己创建:
        1)不使用模板,直接调用HttpResponse(),返回HttpResponse对象。
        2)调用模板,进行渲染。
                使用render
                        render(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) 设置cookie
                delete_cookie(key)删除cookie

 以上是一些请求和响应的一些基础学习

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

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

相关文章

Mini Cheetah 代码分析(八)基于零空间的任务分级

一、主要公式 二、源代码注释 三、相关原理解释 一、主要公式 二、源代码注释 该功能的实现在文件KinWBC.cpp中的FindConfiguration函数,主要看注释,与公式是能够对应起来的,由第0个任务,也就是接触任务开始进行迭代&#xff0…

Java类和对象(二)—— 封装,static 关键字与代码块

前言 在面向对象的编程语言中,有三大特性:封装、继承和多态~~ 今天我们就来学习封装的知识 封装 什么是封装 在现实生活中,我们经常使用手机来进行沟通与交流,实际上我们拿到的手机是被封装好的,精美的屏幕&a…

关键字详解

1.用于定义访问权限修饰符的关键字 面向对象程序三大特性:封装、继承、多态。 1.1 访问权限符 Java 中主要通过类和访问权限来实现封装: 类可以将数据以及封装数据的方法结合在一起 ,更符合人类对事物的认知,而访问权限用来控制…

5月15日,机器人任务挑战赛(无人协同系统)第二期培训即将开启!

一.大赛培训通知 本月起,卓翼飞思实验室将针对机器人任务挑战赛(无人协同系统)赛项内容开启赛事培训计划,采用“线上线下”相结合的培训模式,围绕赛事关键技术,让您轻松应对比赛。本期培训为第二期&#x…

Go微服务: 日志系统ELK核心架构设计

微服务日志系统建设 1 )为什么需要日志系统 业务发展越来越庞大,服务器越来越多各种访问日志,应用日志,错误日志量越来越多,无法管理开发人员排查问题,需要到服务器上查日志 2 )Elastic Stack…

SpringBean详解

文章目录 概述Spring获取Bean的流程依赖注入bean的作用域Spring 中的 Bean 是线程安全的吗Spring如何处理线程并发问题bean 的自动装配和方式Resource和Autowired的区别bean的自动装配bean的生命周期BeanFactoryBeanFactory 常用的实现类有哪些BeanFactory与FactoryBean的不同A…

惠普打印机无线网络连接设置

休息一下,灌个水。这次没多少内容,具体步骤惠普官网上都有,唯一增加的是对安装过程中踩的坑做了一个说明。 一.打印机无线网络连接设置步骤 惠普打印机设置无线网络连接,共16个步骤。 1. 在电脑上打开任意浏览器&am…

HAProxy系列文章二《Patroni+ETCD+PG14+HAProxy的安装部署》

瀚高数据库 目录 文档用途 详细信息 文档用途 本文主要介绍Patroni架构下单点HAProxy的安装部署,通过单点HAProxy实现数据库的负载均衡。本文为HAProxy系列文章之一,其他相关文章请点击文档下方的相关文档链接进行详细查看,文章内不在赘述。…

Spring MVC(四) 数据校验

在开发过程中有一环必不可少的部分就是数据校验,用户在页面中填写的数据通过表单提交时,前端的JS可以做一些是否合法性的验证,比如是否为空、两次密码是否一致、格式是否正确等等验证。当数据到了后台控制器,为了确保程序的健壮性…

Python专家编程系列: 11.为什么在python使用__name__ == ‘__main__‘

0. 标题 Python专家编程系列: 11.为什么在python使用__name__ ‘main’ id: 104 作者: quantgalaxyoutlook.com 欢迎交流 1. 单个 python 文件中的 __name__ 是什么? 我们先看一个简单的python程序脚本a.py: # a.pyprint(__name__) # python a.py # _…

最直接解决 element + sortablejs 拖拽后顺序错误

直接按索引对调两行对象,免加row-key const oldRow this.valueMy[evt.oldIndex] this.valueMy[evt.oldIndex] this.valueMy[evt.newIndex] this.valueMy[evt.newIndex] oldRow

内网环境ubuntu设置静态ip、DNS、路由,不影响网络访问

内网环境通常是有线的,通过服务器的ip、mac、dns地址访问网络才生效的,如果ip地址变了,就不能访问网络了。 如果你的ip地址变了,或者要防止ip变更影响网络访问,就要设置 1、依次点击右上角的电源-设置,在打…

linux 正则表达式+文本三剑客

一、正则表达式 1.正则表达式的概念 REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通…

公司里的“卷王”,是主动卷还是迫于无奈?

先来唠唠 “卷” 这个词是近几年流行起来的网络用语,它是内卷的简化形式,“内卷”本来是一个名不见经传的普通词语,经网络流传,很多人就用其来指代非理性的内部竞争或“被自愿”竞争。 在现代职场,有一群人被戏称为&…

《大学数学3(第三版)》

文章目录 [toc]第一章:行列式第一节|方程组与行列式二元线性方程组和二阶行列式 第二节| n n n阶行列式排列逆序数对换例题 1 1 1 n n n阶行列式 第三节|行列式的性质和计算性质 1 1 1性质 2 2 2:互换 n n n阶行列式的任意两行(列&#xff09…

机器学习算法那些事 | 60个“特征工程”计算函数(Python代码)

本文来源公众号“机器学习算法那些事”,仅用于学术分享,侵权删,干货满满。 原文链接:60个“特征工程”计算函数(Python代码) 近期一些朋友询问我关于如何做特征工程的问题,有没有什么适合初学…

【无标题】进程池/Linux

#include <iostream> #include <vector> #include <unistd.h> #include <cassert> #include <sys/types.h> #include <string> #include <sys/wait.h> // using namespace std; #include "Tash.hpp" class channel//封装文…

三分钟快速上手SpringSecurity框架

导入依赖框架 web 框架(spring-boot-starter-web) <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> springSecurity 框架(spring-boot-starter-security) <de…

递归-常规问题详解

目录 前言 递归经典题目 子集 77. 组合 46. 全排列 前言 递归在计算机算法中有很重要的地位&#xff0c;它可以解决条件具有重复性的问题。我们在快速排序和归并排序&#xff0c;都是利用了递归去解决问题的。写好一个递归代码不是太容易&#xff0c;很容易造成死循环最终…

基于单片机的空气质量检测系统设计(51+4G版)-设计说明书

设计摘要&#xff1a; 本设计是基于单片机的空气质量检测系统设计涉及以下主要功能&#xff0c;旨在监测甲烷和一氧化碳的浓度&#xff0c;并在浓度过高时采取相应措施&#xff0c;以确保室内空气质量的安全。该系统使用传感器对甲烷和一氧化碳的浓度进行检测。传感器将收集到…