Python 官方文档:入门教程 => 点击学习
视图层 一个视图函数,简称视图,是一个简单的 python 函数,它接受 WEB 请求并且返回 Web 响应。 响应可以是一个 html 页面、一个 404 错误页面、重定向页面、X
视图层
一个视图函数,简称视图,是一个简单的 python 函数,它接受 WEB 请求并且返回 Web 响应。
响应可以是一个 html 页面、一个 404 错误页面、重定向页面、XML 文档、或者一张图片...
无论视图本身包含什么逻辑,都要返回响应。代码写在哪里都可以,只要在 Python 目录下面,一般放在项目的 views.py 文件中。
每个视图函数都负责返回一个 HttpResponse 对象,对象中包含生成的响应。
视图层中有两个重要的对象:请求对象(request)与响应对象(HttpResponse)。
以下介绍几个常用的 request 属性。
数据类型是 QueryDict,一个类似于字典的对象,包含 HTTP GET 的所有参数。
有相同的键,就把所有的值放到对应的列表里。
取值格式:对象.方法。
get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。
def runoob(request):
name = request.GET.get("name")
return HttpResponse('姓名:{}'.fORMat(name))
数据类型是 QueryDict,一个类似于字典的对象,包含 HTTP POST 的所有参数。
常用于 form 表单,form 表单里的标签 name 属性对应参数的键,value 属性对应参数的值。
取值格式: 对象.方法。
get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。
def runoob(request):
name = request.POST.get("name")
return HttpResponse('姓名:{}'.format(name))
数据类型是二进制字节流,是原生请求体里的参数内容,在 HTTP 中用于 POST,因为 GET 没有请求体。
在 HTTP 中不常用,而在处理非 HTTP 形式的报文时非常有用,例如:二进制图片、XML、JSON 等。
def runoob(request):
name = request.body
print(name)
return HttpResponse("菜鸟教程")
获取 URL 中的路径部分,数据类型是字符串。
def runoob(request):
name = request.path
print(name)
return HttpResponse("菜鸟教程")
获取当前请求的方式,数据类型是字符串,且结果为大写。
def runoob(request):
name = request.method
print(name)
return HttpResponse("菜鸟教程")
响应对象主要有三种形式:HttpResponse()、render()、redirect()。
HttpResponse(): 返回文本,参数为字符串,字符串中写文本内容。如果参数为字符串里含有 html 标签,也可以渲染。
def runoob(request):
# return HttpResponse("菜鸟教程")
return HttpResponse("<a href='http://https://www.runoob.com/>菜鸟教程</a>")
render(): 返回文本,第一个参数为 request,第二个参数为字符串(页面名称),第三个参数为字典(可选参数,向页面传递的参数:键为页面参数名,值为views参数名)。
def runoob(request):
name ="菜鸟教程"
return render(request,"runoob.html",{"name":name})
redirect():重定向,跳转新页面。参数为字符串,字符串中填写页面路径。一般用于 form 表单提交后,跳转到新页面。
def runoob(request):
return redirect("/index/")
render 和 redirect 是在 HttpResponse 的基础上进行了封装:
--结束END--
本文标题: Django框架中视图的用法
本文链接: https://www.lsjlt.com/news/118702.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0