当前位置:K88软件开发文章中心编程语言PythonPython01 → 文章内容

Django 表单

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-11 12:48:03

页面中<form>有enctype="multipart/form-data"属性时FILES才拥有数据。否则,FILES 是一个空字典。META包含所有可用HTTP头部信息的字典。 例如:





CONTENT_LENGTHCONTENT_TYPEQUERY_STRING:





未解析的原始查询字符串REMOTE_ADDR:





客户端IP地址REMOTE_HOST:





客户端主机名SERVER_NAME:





服务器主机名SERVER_PORT:





服务器端口META 中这些头加上前缀HTTP_最为Key, 例如:





HTTP_ACCEPT_ENCODINGHTTP_ACCEPT_LANGUAGEHTTP_HOST:





客户发送的HTTP主机头信息HTTP_REFERER:





referring页HTTP_USER_AGENT:





客户端的user-agent字符串HTTP_X_BENDER:





X-Bender头信息user是一个django.contrib.auth.models.User 对象,代表当前登录的用户。如果访问用户当前没有登录,user将被初始化为django.contrib.auth.models.AnonymousUser的实例。你可以通过user的is_authenticated()方法来辨别用户是否登录:if request.user.is_authenticated():











# Do something for logged-in users.else:











# Do something for anonymous users.只有激活Django中的AuthenticationMiddleware时该属性才可用session唯一可读写的属性,代表当前会话的字典对象。只有激活Django中的session支持时该属性才可用。 raw_post_data原始HTTP POST数据,未解析过。 高级处理时会有用处。Request对象也有一些有用的方法:方法描述__getitem__(key)返回GET/POST的键值,先取POST,后取GET。如果键不存在抛出 KeyError。这是我们可以使用字典语法访问HttpRequest对象。例如,request["foo"]等同于先request.POST["foo"] 然后 request.GET["foo"]的操作。has_key()检查request.GET or request.POST中是否包含参数指定的Key。get_full_path()返回包含查询字符串的请求路径。例如, "/music/bands/the_beatles/?print=true"is_secure()如果请求是安全的,返回True,就是说,发出的是HTTPS请求。QueryDict对象在HttpRequest对象中, GET和POST属性是django.http.QueryDict类的实例。QueryDict类似字典的自定义类,用来处理单键对应多值的情况。QueryDict实现所有标准的词典方法。还包括一些特有的方法:方法描述__getitem__和标准字典的处理有一点不同,就是,如果Key对应多个Value,__getitem__()返回最后一个value。__setitem__设置参数指定key的value列表(一个Python list)。注意:它只能在一个mutable QueryDict 对象上被调用(就是通过copy()产生的一个QueryDict对象的拷贝).get()如果key对应多个value,get()返回最后一个value。update()参数可以是QueryDict,也可以是标准字典。和标准字典的update方法不同,该方法添加字典 items,而不是替换它们:





>>> q = QueryDict('a=1')>>> q = q.copy()





# to make it mutable>>> q.update({'a':





'2'})>>> q.getlist('a') ['1', '2']>>> q['a']





# returns the last['2']items()和标准字典的items()方法有一点不同,该方法使用单值逻辑的__getitem__():





>>> q = QueryDict('a=1&a=2&a=3')>>> q.items()[('a', '3')]values()和标准字典的values()方法有一点不同,该方法使用单值逻辑的__getitem__():





此外, QueryDict也有一些方法,如下表:方法描述copy()返回对象的拷贝,内部实现是用Python标准库的copy.deepcopy()。该拷贝是mutable(可更改的) — 就是说,可以更改该拷贝的值。getlist(key)返回和参数key对应的所有值,作为一个Python list返回。如果key不存在,则返回空list。 It's guaranteed to return a list of some sort..setlist(key,list_)设置key的值为list_ (unlike __setitem__()).appendlist(key,item)添加item到和key关联的内部list.setlistdefault(key,list)和setdefault有一点不同,它接受list而不是单个value作为参数。lists()和items()有一点不同, 它会返回key的所有值,作为一个list, 例如:





>>> q = QueryDict('a=1&a=2&a=3')>>> q.lists()[('a', ['1', '2', '3'])]urlencode()返回一个以查询字符串格式进行格式化后的字符串(e.g., "a=2&b=3&b=5").

上一页  [1] [2] 


Django 表单