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
以上是一些请求和响应的一些基础学习