Django系列教程(6)-- HttpRequest对象和HttpResponse对象

HttpRequest对象

服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,然后将其传递给视图函数

属性

  • 下列属性中,除特殊说明都是只读的
  • path:一个字符串,表示请求页面的完整路径,不包含域名
  • method:一个字符串,表示请求使用的http方法,常用值包括:‘GET’,‘POST’
  • encoding:一个字符串,表示提交数据的编码方式,这个属性是可写的
  • GET:一个类似于字典的对象,包含get请求方式的所有参数
  • POST:一个类似于字典的对象,包含post请求方式的所有参数

方法

  • is_ajax():如果请求是通过XMLHttpRequest发起的,则返回True

QueryDict对象

  • 定义在django.http.QueryDict
  • request对象的属性GET,POST都是QueryDict类型的对象
  • 与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况
  • 方法get():根据键获取值

    • 只能获取键的一个值
    • 如果一个键同时拥有多个值,获取最后一个值

    dict.get(‘键’,default)
    或简写为
    dict{‘键’}

  • 方法getlist():根据键获取值

    • 将键的值以列表返回,可以获取一个键的多个值

    dict.getlist(‘键’,default)

  • GET属性
    • QueryDict类型的对象
    • 包含get请求方式的所有参数
    • 与url请求地址中的参数对应,位于?后面
    • 参数的格式是键值对,多个参数用&连接

    POST属性

    • QueryDict类型的对象
    • 包含post请求方式的所有参数
    • 与form表单中的控件对应

    HttpResponse对象

    • 在django.http模块中定义了HttpResponse对象的API
    • HttpRequest对象由Django自动创建,HttpResponse由程序员创建
    • 不调用模板,直接返回数据
    # coding=utf-8
    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse('你好')
    • 调用模板

    目前大多推荐使用render的方式

    render
    • render是HttpResponse的简写函数
    • 语法为:render(request,template_name[,context])
    • 结合一个给定的模板和一个给定的上下文字典,并返回一个HttpResponse对象
    • request:该request用于生成reponse
    • template_name:要使用完整的模板名称
    • context:添加到模板上下文的一个字典,视图将在渲染模板之前调用它
    from django.shortcuts import render
    
    def index(request):
    return render(request,'booktest/html',{'h1':'hello'})
    重定向
    • redirect(to)
    • 为传递进来的参数返回HttpResponseRedirect
    • to推荐使用反向解析
    from django.shortcuts import redirect
    from django,core.urlresolvers import reverse
    
    def index(request):
        return redirect(reverse('booktest:index2'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值