Django中的Request和Response

接触Django这么久了,从来没有好好学习关于Django中的Request和Response对象。借着文件上传下载的相关工作,现在总结一下也不错。

当一个页面请求过来,Django会自动创建一个Request对象,匹配URLconf中对应的view方法,并将这个Request对象作为第一个参数传递给view方法。而view方法会经过一系列操作之后,返回一个Response对象,返回给客户端。

具体的Request对象的属性(attribute)有很多(除了seesion都说只读属性):

  1. HttpRequest.path—不包括域的全路径,例如:”/music/bands/the_beatles/”
  2. HttpRequest.method—请求方法,常用的有GET和POST
  3. HttpRequest.encoding—请求的编码格式,很有用!
  4. HttpRequest.GET(POST)---见HttpRequest.method
  5. HttpRequest.REQUEST---类字典的对象,搜索顺序先POST再GET
  6. HttpRequest.COOKIES---标准的python字典对象,键和值都是字符串。
  7. HttpRequest.FILES---类字典对象。键是表单提交的name---<input type="file" name="" />而file是一个上传的对象,它的属性有:read,name,size,chunks
  8. HttpRequest.META---包括标准HTTP头的python字典。如下:

    • CONTENT_LENGTH
    • CONTENT_TYPE
    • HTTP_ACCEPT_ENCODING
    • HTTP_ACCEPT_LANGUAGE
    • HTTP_HOST — The HTTP Host header sent by the client.
    • HTTP_REFERER — The referring page, if any.
    • HTTP_USER_AGENT — The client’s user-agent string.
    • QUERY_STRING — The query string, as a single (unparsed) string.
    • REMOTE_ADDR — The IP address of the client.
    • REMOTE_HOST — The hostname of the client.
    • REMOTE_USER — The user authenticated by the web server, if any.
    • REQUEST_METHOD — A string such as "GET" or "POST".
    • SERVER_NAME — The hostname of the server.
    • SERVER_PORT — The port of the server.
  9. HttpRequest.user---当前登录的用户
  10. HttpRequest.session---一个可读写的类python字典
  11. HttpRequest.raw_post_data---在高级应用中应用,可以算是POST的一个替代,但是不建议使用。
  12. HttpRequest.urlconf---默认情况下,是没有定义的

每个Request对象还有一些很有用的方法:

  1. HttpRequest.get_host()—返回域名,例如:”127.0.0.1:8000″
  2. HttpRequest.get_full_path()—返回请求的全路径(但是不包括域名),例如:”/music/bands/the_beatles/?print=true”
  3. HttpRequest.build_absolute_uri(location)—以上2者的结合
  4. HttpRequest.is_secure()—判断是否为https连接(没有用过)
  5. HttpRequest.is_ajax()—请求为XMLHttpRequest时,返回True

下面看看HttpResponse的属性(attribute):

  1. HttpResponse.content—python string对象,尽量用unicode。
  2. HttpResponse.status_codeHTTP Status code

HttpResponse的方法:

  1. HttpResponse.has_header(header)
  2. HttpResponse.set_cookie
  3. HttpResponse.delete_cookie
  4. HttpResponse.write(content)
  5. HttpResponse.flush()
  6. HttpResponse.tell()

以上说明以后陆续修正吧。

下面一部分是我学习到的东西:告诉浏览器你要下载文件(TELLING THE BROWSER TO TREAT THE RESPONSE AS A FILE ATTACHMENT)!

>>> response = HttpResponse(my_data, mimetype=‘application/vnd.ms-excel‘)
>>> response[‘Content-Disposition‘] = ‘attachment; filename=foo.xls‘
FROM:http://py-bow.appspot.com/?p=20001


Django

时间: 2024-10-25 18:11:39

Django中的Request和Response的相关文章

[转]Django中的Request和Response

接触Django这么久了,从来没有好好学习关于Django中的Request和Response对象.借着文件上传下载的相关工作,现在总结一下也不错. 当一个页面请求过来,Django会自动创建一个Request对象,匹配URLconf中对应的view方法,并将这个Request对象作为第一个参数传递给view方法.而view方法会经过一系列操作之后,返回一个Response对象,返回给客户端. 具体的Request对象的属性(attribute)有很多(除了seesion都说只读属性): Htt

struts2中获取request、response,与android客户端进行交互(文件传递给客户端)

用struts2作为服务器框架,与android客户端进行交互需要得到request.response对象. struts2中获取request.response有两种方法. 第一种:利用ServletActionContext的静态方法 Struts2 利用ServletActionContext类来维护Servlet对象,ServletActionContext利用ThreadLocal来维护 不同线程的Servlet对象,因此可以使用ServletActionContext类获取,这种方法

servlet中的request和response

利用3到4天的时间,把servlet中的request和response对象视频看了一遍.看完之后,自己总结出来了一些知识点. 学习一个对象的三部曲:首先查看API文档,了解以及掌握对象的一些常用的方法用法:其次就是解决一些中文乱码之类的问题:最后就是该对象的应用了. 好了,先来说说response对象吧. 1.解决用outputStream输出中文的乱码问题. //1.程序的数据以什么码表输出了,程序就要控制浏览器以什么码表打开 response.setHeader("content-type

LoadRunner中取Request、Response

LoadRunner中取Request.Response LoadRunner两个“内置变量”: 1.REQUEST,用于提取完整的请求头信息. 2.RESPONSE,用于提取完整的响应头信息. 响应头信息用可用其它方式实现,但请求头信息还真不知道可以这样拿到.太隐蔽了吧! 注意,这两个变量仅在请求前使用web_save_header注册使用.示例如下: Action(){ web_set_max_html_param_len("262144"); // 默认最大长度为256 web_

Struts学习笔记(三)struts2中获得request、response和session的三种方法

struts2中获得request.response和session的三种方法   (1)非IoC方式 方法一:使用org.apache.struts2.ActionContext类,通过它的静态方法getContext()获取当前Action的上下文对象. ActionContext ctx = ActionContext.getContext(); ctx.put("liuwei", "andy"); //request.setAttribute("l

ASP.NET中的Request、Response、Server对象

Request对象 Response.Write(Request.ApplicationPath) //应用根路径Request.AppRelativeCurrentExecutionFilePath //当前执行请求相对于应用根目录的虚拟路径,以-开头Request.PhysicalApplicationPath //当前应用的物理路径,如 D:\TEST\WEBRequest.PhysicalPath //当前请求的物理路径,如 D:\TEST\WEB\a.aspxRequest.RawUr

Spring mvc中使用request和response

@ResponseBody @RequestMapping(value="/ip", method=RequestMethod.GET) public String getIP(HttpServletRequest request, HttpServletResponse response){ return request.getRemoteAddr(); } 直接在参数中指定,mvc会自动注入

TC608——Servlet中的Request和response请求响应技术

request和response author:lxy 1.了解request和response request:请求对象 response:响应对象 请求和响应对象由服务器创建,每次请求都创建新的请求响应对象,响应结束,对象自动消失. 作用: request可以处理所有的Http请求,----获取Http请求信息 response可以处理所有的Http响应,----设置Http响应信息 补充:请求消息由 请求行.请求头.请求内容组成 2.request和response体系介绍 |-Servl

在业务控制方法中写入Request,Response等传统web参数

可以在业务控制方法中书写传统web参数,这种方式我们不提倡,耦合了 @Controller @RequestMapping(value="/user") public class UserAction{ @RequestMapping(value="/add",method=RequestMethod.POST) public void add(HttpServletRequest request,HttpServletResponse response) thro