亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? util.py

?? Mod_python is an Apache module that embeds the Python interpreter within the server. With mod_python
?? PY
?? 第 1 頁 / 共 2 頁
字號:
 # vim: set sw=4 expandtab : # # Copyright 2004 Apache Software Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); you # may not use this file except in compliance with the License.  You # may obtain a copy of the License at # #      http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied.  See the License for the specific language governing # permissions and limitations under the License. # # Originally developed by Gregory Trubetskoy. # # $Id: util.py 478129 2006-11-22 11:15:54Z grahamd $import _apacheimport apacheimport cStringIOimport tempfileimport refrom types import *from exceptions import *parse_qs = _apache.parse_qsparse_qsl = _apache.parse_qsl# Maximum line length for reading. (64KB)# Fixes memory error when upload large files such as 700+MB ISOs.readBlockSize = 65368""" The classes below are a (almost) a drop-in replacement for the    standard cgi.py FieldStorage class. They should have pretty much the    same functionality.    These classes differ in that unlike cgi.FieldStorage, they are not    recursive. The class FieldStorage contains a list of instances of    Field class. Field class is incapable of storing anything in it.    These objects should be considerably faster than the ones in cgi.py    because they do not expect CGI environment, and are    optimized specifically for Apache and mod_python."""class Field:    def __init__(self, name, *args, **kwargs):        self.name = name        # Some third party packages such as Trac create        # instances of the Field object and insert it        # directly into the list of form fields. To        # maintain backward compatibility check for        # where more than just a field name is supplied        # and invoke an additional initialisation step        # to process the arguments. Ideally, third party        # code should use the add_field() method of the        # form, but if they need to maintain backward        # compatibility with older versions of mod_python        # they will not have a choice but to use old        # way of doing things and thus we need this code        # for the forseeable future to cope with that.        if args or kwargs:            self.__bc_init__(*args, **kwargs)    def __bc_init__(self, file, ctype, type_options,                    disp, disp_options, headers = {}):       self.file = file       self.type = ctype       self.type_options = type_options       self.disposition = disp       self.disposition_options = disp_options       if disp_options.has_key("filename"):           self.filename = disp_options["filename"]       else:           self.filename = None       self.headers = headers    def __repr__(self):        """Return printable representation."""        return "Field(%s, %s)" % (`self.name`, `self.value`)    def __getattr__(self, name):        if name != 'value':            raise AttributeError, name        if self.file:            self.file.seek(0)            value = self.file.read()            self.file.seek(0)        else:            value = None        return value    def __del__(self):        self.file.close()class StringField(str):    """ This class is basically a string with    added attributes for compatibility with std lib cgi.py. Basically, this    works the opposite of Field, as it stores its data in a string, but creates    a file on demand. Field creates a value on demand and stores data in a file.    """    filename = None    headers = {}    ctype = "text/plain"    type_options = {}    disposition = None    disp_options = None        # I wanted __init__(name, value) but that does not work (apparently, you    # cannot subclass str with a constructor that takes >1 argument)    def __init__(self, value):        '''Create StringField instance. You'll have to set name yourself.'''        str.__init__(self, value)        self.value = value    def __getattr__(self, name):        if name != 'file':            raise AttributeError, name        self.file = cStringIO.StringIO(self.value)        return self.file            def __repr__(self):        """Return printable representation (to pass unit tests)."""        return "Field(%s, %s)" % (`self.name`, `self.value`)class FieldList(list):    def __init__(self):        self.__table = None        list.__init__(self)    def table(self):        if self.__table is None:            self.__table = {}            for item in self:                if item.name in self.__table:                    self.__table[item.name].append(item)                else:                    self.__table[item.name] = [item]        return self.__table    def __delitem__(self, *args):        self.__table = None        return list.__delitem__(self, *args)    def __delslice__(self, *args):        self.__table = None        return list.__delslice__(self, *args)    def __iadd__(self, *args):        self.__table = None        return list.__iadd__(self, *args)    def __imul__(self, *args):        self.__table = None        return list.__imul__(self, *args)    def __setitem__(self, *args):        self.__table = None        return list.__setitem__(self, *args)    def __setslice__(self, *args):        self.__table = None        return list.__setslice__(self, *args)    def append(self, *args):        self.__table = None        return list.append(self, *args)    def extend(self, *args):        self.__table = None        return list.extend(self, *args)    def insert(self, *args):        self.__table = None        return list.insert(self, *args)    def pop(self, *args):        self.__table = None        return list.pop(self, *args)    def remove(self, *args):        self.__table = None        return list.remove(self, *args)class FieldStorage:    def __init__(self, req, keep_blank_values=0, strict_parsing=0, file_callback=None, field_callback=None):        #        # Whenever readline is called ALWAYS use the max size EVEN when        # not expecting a long line. - this helps protect against        # malformed content from exhausting memory.        #        self.list = FieldList()        # always process GET-style parameters        if req.args:            pairs = parse_qsl(req.args, keep_blank_values)            for pair in pairs:                self.add_field(pair[0], pair[1])        if req.method != "POST":            return        try:            clen = int(req.headers_in["content-length"])        except (KeyError, ValueError):            # absent content-length is not acceptable            raise apache.SERVER_RETURN, apache.HTTP_LENGTH_REQUIRED        if not req.headers_in.has_key("content-type"):            ctype = "application/x-www-form-urlencoded"        else:            ctype = req.headers_in["content-type"]        if ctype.startswith("application/x-www-form-urlencoded"):            pairs = parse_qsl(req.read(clen), keep_blank_values)            for pair in pairs:                self.add_field(pair[0], pair[1])            return        if not ctype.startswith("multipart/"):            # we don't understand this content-type            raise apache.SERVER_RETURN, apache.HTTP_NOT_IMPLEMENTED        # figure out boundary        try:            i = ctype.lower().rindex("boundary=")            boundary = ctype[i+9:]            if len(boundary) >= 2 and boundary[0] == boundary[-1] == '"':                boundary = boundary[1:-1]            boundary = re.compile("--" + re.escape(boundary) + "(--)?\r?\n")         except ValueError:            raise apache.SERVER_RETURN, apache.HTTP_BAD_REQUEST        # read until boundary        self.read_to_boundary(req, boundary, None)        end_of_stream = False        while not end_of_stream: # jjj JIM BEGIN WHILE            ## parse headers            ctype, type_options = "text/plain", {}            disp, disp_options = None, {}            headers = apache.make_table()            line = req.readline(readBlockSize)            match = boundary.match(line)            if (not line) or match:                # we stop if we reached the end of the stream or a stop                # boundary (which means '--' after the boundary) we                # continue to the next part if we reached a simple                # boundary in either case this would mean the entity is                # malformed, but we're tolerating it anyway.                end_of_stream = (not line) or (match.group(1) is not None)                continue              skip_this_part = False            while line not in ('\r','\r\n'):                nextline = req.readline(readBlockSize)                while nextline and nextline[0] in [ ' ', '\t']:                    line = line + nextline                    nextline = req.readline(readBlockSize)                # we read the headers until we reach an empty line                # NOTE : a single \n would mean the entity is malformed, but                # we're tolerating it anyway                h, v = line.split(":", 1)                headers.add(h, v)                h = h.lower()                if h == "content-disposition":                    disp, disp_options = parse_header(v)                elif h == "content-type":                    ctype, type_options = parse_header(v)                    #                    # NOTE: FIX up binary rubbish sent as content type                    # from Microsoft IE 6.0 when sending a file which                    # does not have a suffix.                    #                    if ctype.find('/') == -1:                        ctype = 'application/octet-stream'

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美婷婷六月丁香综合色| 91在线免费看| 99久久99久久精品免费观看| 色婷婷国产精品综合在线观看| 国产激情视频一区二区在线观看| 成人网男人的天堂| 欧美系列在线观看| 亚洲精品一区二区三区影院| 国产欧美一区二区三区在线看蜜臀| 中文字幕中文在线不卡住| 亚洲国产一区在线观看| 国产伦精一区二区三区| 欧美日韩精品系列| 中文字幕欧美日韩一区| 蜜桃一区二区三区在线观看| 不卡免费追剧大全电视剧网站| 欧美日韩国产一级片| 久久精品人人做人人综合| 亚洲精品欧美专区| 99这里都是精品| 亚洲国产电影在线观看| 国产乱子伦视频一区二区三区| 在线电影院国产精品| 五月天久久比比资源色| 97精品久久久午夜一区二区三区| 久久欧美一区二区| 国产美女精品一区二区三区| 欧美mv日韩mv国产网站app| 同产精品九九九| 精品视频一区二区不卡| 亚洲精品乱码久久久久| 91精品1区2区| 午夜精彩视频在线观看不卡| 在线视频亚洲一区| 一卡二卡欧美日韩| 911精品产国品一二三产区| 日韩精品高清不卡| 精品国产制服丝袜高跟| 国精品**一区二区三区在线蜜桃| 精品国产精品一区二区夜夜嗨| 久久精品国产精品亚洲红杏| 欧美一区二区三区白人| 国产综合色视频| 国产精品免费观看视频| 欧美性感一区二区三区| 日本一区中文字幕| 国产目拍亚洲精品99久久精品| www.爱久久.com| 天天影视网天天综合色在线播放| 欧美电视剧免费全集观看| 国产成人精品一区二区三区网站观看 | 婷婷六月综合亚洲| 欧美videossexotv100| www.视频一区| 奇米精品一区二区三区在线观看一| 精品少妇一区二区三区免费观看| 国产一区二区三区av电影| 椎名由奈av一区二区三区| 日韩写真欧美这视频| 91亚洲精品久久久蜜桃| 美腿丝袜亚洲一区| 亚洲男同性恋视频| 日本一区二区三区电影| 91精品国产综合久久久久久| 91丨九色丨蝌蚪富婆spa| 韩国成人精品a∨在线观看| 亚洲成av人综合在线观看| 国产精品九色蝌蚪自拍| 久久久久久9999| 欧美大白屁股肥臀xxxxxx| 91成人看片片| 欧美性猛交xxxx乱大交退制版| 99久久精品99国产精品| 波多野结衣在线一区| 大美女一区二区三区| 国产成人免费视频精品含羞草妖精 | 亚洲国产欧美在线人成| 一区二区三区久久久| 亚洲一区欧美一区| 亚洲妇熟xx妇色黄| 天堂久久一区二区三区| 欧美96一区二区免费视频| 人禽交欧美网站| 国产一区二区剧情av在线| 国产精品一区二区久久不卡| 成人免费三级在线| 99视频精品全部免费在线| 欧美三级中文字| 精品国产免费人成电影在线观看四季| 日韩一区二区三| 国产欧美日韩综合| 亚洲综合色区另类av| 蜜臀av一区二区| 国产成人av一区二区三区在线 | 亚洲成人免费观看| 久久爱www久久做| 91丨porny丨在线| 精品久久久网站| 亚洲欧美日韩一区二区| 狠狠色综合播放一区二区| 91在线码无精品| 久久久激情视频| 午夜精品久久久久| 色久优优欧美色久优优| 精品区一区二区| 亚洲国产人成综合网站| 91精品欧美久久久久久动漫| 国产精品美女久久久久久久| 婷婷久久综合九色综合绿巨人| 成人做爰69片免费看网站| 91精品国产色综合久久ai换脸| 国产精品视频在线看| 九九视频精品免费| 51精品国自产在线| 亚洲国产日韩av| 欧美在线观看一区二区| 国产精品福利电影一区二区三区四区| 国产乱色国产精品免费视频| 欧美日韩国产首页| 亚洲免费伊人电影| 成人黄色片在线观看| 欧美极品美女视频| 成人美女视频在线观看18| 久久久电影一区二区三区| 极品销魂美女一区二区三区| 国产精品视频观看| 91丨九色丨黑人外教| 亚洲图片欧美色图| 欧美一区二区三区日韩| 六月丁香综合在线视频| 久久久www免费人成精品| 盗摄精品av一区二区三区| 国产精品国产自产拍高清av| 91啦中文在线观看| 日韩二区三区在线观看| 精品人在线二区三区| 99久久精品免费精品国产| 亚洲免费观看高清在线观看| 欧美日韩久久久| 国产一区二区三区在线观看免费 | 99久久精品费精品国产一区二区| 综合中文字幕亚洲| 欧美一级精品大片| 福利视频网站一区二区三区| 亚洲在线视频免费观看| 亚洲精品在线观| 欧美亚洲自拍偷拍| 成人午夜视频免费看| 亚洲一区av在线| 国产精品美女久久久久av爽李琼 | 国产乱人伦偷精品视频免下载| 亚洲综合小说图片| 国产精品乱码一区二三区小蝌蚪| 欧美福利一区二区| 在线观看国产一区二区| 成人99免费视频| 国产69精品久久久久777| 日韩成人精品在线| 亚洲福利视频三区| 亚洲蜜臀av乱码久久精品| 日韩精品一区二区三区蜜臀| 欧美日韩国产a| 在线看国产一区二区| 91社区在线播放| 91麻豆精品秘密| 色综合久久中文综合久久牛| 国产精品香蕉一区二区三区| 久久99精品国产.久久久久久| 日本三级亚洲精品| 国产在线乱码一区二区三区| 奇米四色…亚洲| 国产精品一线二线三线| 国产激情偷乱视频一区二区三区| 国产成人精品免费一区二区| 不卡一区二区中文字幕| 欧亚洲嫩模精品一区三区| 在线精品国精品国产尤物884a| 欧美精品一二三| 久久你懂得1024| 一区二区三区资源| 日韩av午夜在线观看| 久久国产精品露脸对白| 成人黄色综合网站| 91福利小视频| 日韩精品专区在线影院重磅| 国产亚洲欧洲一区高清在线观看| 国产精品久久久久婷婷| 日韩精品欧美精品| 丁香天五香天堂综合| 色综合天天综合给合国产| 日韩一级黄色大片| 亚洲你懂的在线视频| 激情图片小说一区| 在线观看欧美精品| 国产精品人人做人人爽人人添| 日韩和欧美一区二区三区| 成人激情开心网| 日韩欧美国产三级电影视频| 亚洲综合色成人| 91视频一区二区|