django框架:HttpResponse对象

日期:2018-06-30 20:32:42 章节:  django开发流程及原理

django中HttpResponse对象,不会由django创建,是由程序员自行创建,用于返回相应数据结构给调用者。

HttpRequest对象由django创建。

HttpResponse对象创建需要导包django.http,不会调用模板,直接返回数据

定义视图responseDemo

def responseDemo(request):

    response=HttpResponse()

    response.write("这是HttpResponse对象write()方法!")

    return response

注册相应的URL

url(r'^responseDemo/$',views.responseDemo),

HttpResponse对象.png

调用模板(可以使用render替代这种方式)

from django.http import HttpResponse

from django.template import RequestContext, loader

def index(request):
   t1 = loader.get_template('booktest/index.html')
   context = RequestContext(request, {'h1': 'hello'})

   return HttpResponse(t1.render(context))


HttpResponse对象属性:

  • content:表示返回的内容,字符串类型

  • charset:表示response采用的编码字符集,字符串类型

  • status_code:响应的HTTP响应状态码

  • content-type:指定输出的MIME类型


HttpResponse对象方法:

  • init :使用页内容实例化HttpResponse对象

  • write(content):以文件的方式写

  • flush():以文件的方式输出缓存区

  • set_cookie(key, value='', max_age=None, expires=None):设置Cookie

    • key、value都是字符串类型

    • max_age是一个整数,表示在指定秒数后过期

    • expires是一个datetime或timedelta对象,会话将在这个指定的日期/时间过期,注意datetime和timedelta值只有在使用PickleSerializer时才可序列化

    • max_age与expires二选一

    • 如果不指定过期时间,则两个星期后过期

方法中,cookie \session 操作比较重要。应用场景也非常多。