Django之Views

1.  视图层

    一个视图函数,简称视图,是一个简单的 Python 函数,它接受 Web 请求并且返回 Web 响应。

    响应可以是一个 HTML 页面、一个 404 错误页面、重定向页面、XML 文档、或者一张图片...

    无论视图本身包含什么逻辑,都要返回响应。代码写在哪里都可以,只要在 Python 目录下面,一般放在项目的 views.py 文件中。

    每个视图函数都负责返回一个 HttpResponse 对象,对象中包含生成的响应。

    视图层中有两个重要的对象:请求对象(request)与响应对象(HttpResponse)

2.  请求对象

    1.  GET

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

        取值格式:对象.方法

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

        例子

          views.py          

from django.shortcuts import render
from django.http import HttpResponse
def login(request):
    a=request.GET.get('name')
    print(a)
    return HttpResponse("我是张学友")

          访问:http://172.16.7.244:8081/zhangxueyou/login/?name=aaa  

    2.  POST

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

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

        取值格式: 对象.方法。

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

    3.  body

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

def runoob(request):
    name = request.body
    print(name)
    return HttpResponse("菜鸟教程")
结果:b'csrfmiddlewaretoken=jMUoLPeG9taNG0JGFQk7KsGL36b3LNhafoUSPpPuwzykVl3DEk22yiVcmwht5iw1&q=cccccc'  

    4.  path

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

def runoob(request):
    name = request.path
    print(name)
    return HttpResponse("菜鸟教程")

        结果:/zhangxueyou/login/          

    5.  method

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

def runoob(request):
    name = request.method
    print(name)
    return HttpResponse("菜鸟教程")

        结果:GET  

3.  响应对象

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

    1.  HttpResponse()

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

def hello(request):
    return HttpResponse("猴子牛逼")

def hello(request):
    return HttpResponse("<a href='https://www.baidu.com/'>猴子亚洲第一牛逼少</a>")

    2.  render()

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

def name(request):
    test_name=91
    return render(request,'name.html',{"num":test_name})

    3.  redirect()

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

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

  

  

  

            

        

 

posted @ 2024-05-29 15:27  奋斗史  阅读(15)  评论(0)    收藏  举报