Django 视图(view)

目录

视图层简介

测试例子

请求对象: HttpRequest 对象(简称 request 对象)

1、GET

2、POST

3、body

4、path

5、method

响应对象:HttpResponse 对象


视图层(view)简介

Django视图层一个视图函数,简称视图,是一个简单的 Python 函数,它接受 Web 请求并且返回 Web 响应。响应可以是一个 HTML 页面、一个 404 错误页面、重定向页面、或者一张图片...无论视图本身包含什么逻辑,都要返回响应。代码写在哪里都可以,只要在 Python 目录下面,一般放在项目的 views.py 文件中。每个视图函数都负责返回一个 HttpResponse 对象,对象中包含生成的响应。视图层中有两个重要的对象:请求对象(request)与响应对象(HttpResponse)。在建立应用程序后,先在URL配置文件中加一条配置项指明URL与视图函数的对应关系。然后按照实际需求在视图函数中编写逻辑代码来实现相应的功能,返回一个HTTP响应。


测试例子

编写视图函数(应用下的views.py)

from django.shortcuts import render,redirect,HttpResponse
from django.contrib import auth

def index(request):
    return render(request,"index.html",locals())

URL配置(项目下的urls.py)

from django.contrib import admin
from django.urls import path
from app01 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/',views.index,name="index")
]

模板页面配置(模板文件路径下的HTML文件,这里文件名index.html,具体配置方法参考模板路径设置)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>

<h2>INDEX</h2>

</body>
</html>

测试成功:        

页面显示index


请求对象: HttpRequest 对象(简称 request 对象)

以下介绍几个常用的 request 属性

1、GET

数据类型是 QueryDict,一个类似于字典的对象,包含 HTTP GET 的所有参数。

有相同的键,就把所有的值放到对应的列表里。

取值格式:对象.方法。

get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。

举例

def index(request):
    name = request.GET.get("name")
    return HttpResponse('姓名:{}'.format(name))

2、POST

数据类型是 QueryDict,一个类似于字典的对象,包含 HTTP POST 的所有参数。

常用于 form 表单,form 表单里的标签 name 属性对应参数的键,value 属性对应参数的值。

取值格式: 对象.方法。

get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。

举例

def index(request):
    name = request.POST.get("name")
    return HttpResponse('姓名:{}'.format(name))

3、body

数据类型是二进制字节流,是原生请求体里的参数内容,在 HTTP 中用于 POST,因为 GET 没有请求体。

在 HTTP 中不常用,而在处理非 HTTP 形式的报文时非常有用,例如:二进制图片、XML、Json 等。

举例

def index(request):
    name = request.body
    print(name)
    return HttpResponse("测试成功")

4、path

获取 URL 中的路径部分,数据类型是字符串。

举例

def index(request):
    name = request.path
    print(name)
    return HttpResponse("测试成功")

5、method

获取当前请求的方式,数据类型是字符串,且结果为大写。

def index(request):
    name = request.method
    print(name)
    return HttpResponse("测试成功")

响应对象:HttpResponse 对象

响应对象主要有三种形式:HttpResponse()、render()、redirect()。

HttpResponse(): 返回文本,参数为字符串,字符串中写文本内容。如果参数为字符串里含有 html 标签,也可以渲染。

def index(request):
    return HttpResponse("测试成功")

render(): 返回文本,第一个参数为 request,第二个参数为字符串(页面名称),第三个参数为字典(可选参数,向页面传递的参数:键为页面参数名,值为views参数名)。

def index(request):
    name ="测试成功"
    return render(request,"index.html",{"name":name})

redirect():重定向,跳转新页面。参数为字符串,字符串中填写页面路径。一般用于 form 表单提交后,跳转到新页面。

def index(request):
    return redirect("/index/")

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值