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创建一个新的项目

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

python 复制代码
python3 -m venv myvenv  

进入虚拟环境

python 复制代码
source myvenv/bin/activate

在虚拟环境中安装Django

python 复制代码
pip3 install django==4.2

创建Django项目

python 复制代码
django-admin startproject project2

尝试启动一下

python 复制代码
python3 project2/manage.py runserver

创建一个新的App

python 复制代码
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

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

相关推荐
bst@微胖子1 小时前
Python高级语法之selenium
开发语言·python·selenium
wyk123_0461 小时前
Django 连接(sqlserver)数据库方法
数据库·sqlserver·django
查理零世2 小时前
【蓝桥杯集训·每日一题2025】 AcWing 6118. 蛋糕游戏 python
python·算法·蓝桥杯
魔尔助理顾问3 小时前
一个简洁高效的Flask用户管理示例
后端·python·flask
java1234_小锋3 小时前
一周学会Flask3 Python Web开发-request请求对象与url传参
开发语言·python·flask·flask3
诚信爱国敬业友善6 小时前
常见排序方法的总结归类
开发语言·python·算法
李长渊哦6 小时前
使用Druid连接池优化Spring Boot应用中的数据库连接
数据库·spring boot·后端
web135085886356 小时前
【Spring Boot】Spring AOP动态代理,以及静态代理
spring boot·后端·spring
nbsaas-boot7 小时前
Go 自动升级依赖版本
开发语言·后端·golang
架构默片7 小时前
【JAVA工程师从0开始学AI】,第五步:Python类的“七十二变“——当Java的铠甲遇见Python的液态金属
java·开发语言·python