码迷,mamicode.com
首页 > 其他好文 > 详细

Django创建视图

时间:2021-04-05 12:18:07      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:响应   相同   inf   django   time   idt   htm   datetime   query   

Django的视图

简单的视图

我们将在 myapp 创建一个简单的视图显示: "welcome to yiibai !"

查看如下的视图 ?

from django.http import HttpResponse
def hello(request):
   text = """<h1>welcome to yiibai !</h1>"""
   return HttpResponse(text) 

 

查看如下的视图 ?

from django.http import HttpResponse
import datetime
def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

 

 HttpRequest 对象:请求对象

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

1、GET

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

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

取值格式:对象.方法。

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

实例

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

2、POST

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

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

取值格式: 对象.方法。

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

实例

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

3、body

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

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

实例

def runoob(request):
    name = request.body
    print(name)
    return HttpResponse("教程")

 

4、path

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

实例

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

技术图片

5、method

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

实例

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

技术图片

HttpResponse 对象:响应对象

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

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

实例

def runoob(request):
    # return HttpResponse("教程")
    return HttpResponse("<a href=‘https://www.runoob.com/‘>教程</a>")

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

实例

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

render 和 redirect 是在 HttpResponse 的基础上进行了封装:

  • render:底层返回的也是 HttpResponse 对象
  • redirect:底层继承的是 HttpResponse 对象

 

Django创建视图

标签:响应   相同   inf   django   time   idt   htm   datetime   query   

原文地址:https://www.cnblogs.com/BlairGrowing/p/14612848.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!