Bottle 소스코드의 HeaderDict에 대한 자세한 설명
求 모든 프레임워크 요청 응답은 하나의 원칙을 기반으로 합니다. http 요청 --> wsgi 서버 --> wsgi 인터페이스(실제로 프레임워크에서 사용자 정의 구현으로 구현된 기능은 하단에 캡슐화되어 있음) Liao Xuefeng의 튜토리얼
class HeaderDict(dict):''' A dictionary with case insensitive (titled) keys. You may add a list of strings to send multible headers with the same name.'''def __setitem__(self, key, value):return dict.__setitem__(self,key.title(), value) #注意这里使用title函数,它能将每个单词的开头大写def __getitem__(self, key):return dict.__getitem__(self,key.title())def __delitem__(self, key):return dict.__delitem__(self,key.title())def __contains__(self, key):return dict.__contains__(self,key.title())def items(self):""" Returns a list of (key, value) tuples """for key, values in dict.items(self):if not isinstance(values, list): values = [values]for value in values:yield (key, str(value)) def add(self, key, value):""" Adds a new header without deleting old ones """if isinstance(value, list):for v in value:self.add(key, v) #注意这里使用了递归elif key in self:if isinstance(self[key], list):self[key].append(value)else:self[key] = [self[key], value]else: self[key] = [value]
- 값을 목록으로 변환, 데이터 표현 최적화
- 키에 있는 단어의 첫 글자를 대문자로 표시
def abort(code=500, text='Unknown Error: Appliction stopped.'):""" Aborts execution and causes a HTTP error. """raise HTTPError(code, text)def redirect(url, code=307):""" Aborts execution and causes a 307 redirect """response.status = code response.header['Location'] = urlraise BreakTheBottle("")def send_file(filename, root, guessmime = True, mimetype = 'text/plain'):""" Aborts execution and sends a static files as response. """root = os.path.abspath(root) + '/'filename = os.path.normpath(filename).strip('/') filename = os.path.join(root, filename)#判断文件是否可获得if not filename.startswith(root): #主目录下的文件不可以下载abort(401, "Access denied.")if not os.path.exists(filename) or not os.path.isfile(filename): abort(404, "File does not exist.")if not os.access(filename, os.R_OK): abort(401, "You do not have permission to access this file.")# 获得文件类型if guessmime: guess = mimetypes.guess_type(filename)[0]if guess: response.content_type = guesselif mimetype: response.content_type = mimetypeelif mimetype: response.content_type = mimetype#设置Content_typestats = os.stat(filename)# TODO: HTTP_IF_MODIFIED_SINCE -> 304 (Thu, 02 Jul 2009 23:16:31 CEST)if 'Content-Length' not in response.header: response.header['Content-Length'] = stats.st_sizeif 'Last-Modified' not in response.header: ts = time.gmtime(stats.st_mtime) ts = time.strftime("%a, %d %b %Y %H:%M:%S +0000", ts) response.header['Last-Modified'] = tsraise BreakTheBottle(open(filename, 'r'))
위 내용은 Bottle 소스코드의 HeaderDict에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











고급 프로그래밍 언어인 Python 언어는 배우기 쉽고 읽고 쓰기 쉬우며 소프트웨어 개발 분야에서 널리 사용되었습니다. 그러나 Python의 오픈 소스 특성으로 인해 소스 코드는 다른 사람이 쉽게 액세스할 수 있으므로 소프트웨어 소스 코드 보호에 몇 가지 문제가 발생합니다. 따라서 실제 응용 프로그램에서는 Python 소스 코드를 보호하고 보안을 보장하기 위해 몇 가지 방법을 사용해야 하는 경우가 많습니다. 소프트웨어 소스 코드 보호에는 Python에서 선택할 수 있는 다양한 응용 사례가 있습니다. 다음은 몇 가지 일반적인 사항입니다.

PHP 코드의 소스 코드를 해석 및 실행하지 않고 브라우저에 표시하는 방법은 무엇입니까? PHP는 동적 웹 페이지를 개발하는 데 일반적으로 사용되는 서버 측 스크립팅 언어입니다. 서버에서 PHP 파일이 요청되면 서버는 그 안에 있는 PHP 코드를 해석하고 실행한 후 최종 HTML 콘텐츠를 브라우저에 보내 표시합니다. 그러나 때때로 PHP 파일의 소스 코드를 실행하는 대신 브라우저에 직접 표시하고 싶을 때가 있습니다. 이 기사에서는 PHP 코드의 소스 코드를 해석 및 실행하지 않고 브라우저에 표시하는 방법을 소개합니다. PHP에서는 다음을 사용할 수 있습니다.

브라우저의 개발자 도구를 사용하여 웹사이트의 소스 코드를 볼 수 있습니다. Google Chrome 브라우저에서: 1. Chrome 브라우저를 열고 소스 코드를 보려는 웹사이트를 방문합니다. 2. 웹의 아무 곳이나 마우스 오른쪽 버튼으로 클릭합니다. 페이지에서 "검사"를 선택하거나 단축키 Ctrl + Shift + I를 눌러 개발자 도구를 엽니다. 3. 개발자 도구의 상단 메뉴 표시줄에서 "요소" 탭을 선택합니다. 4. HTML 및 CSS 코드를 확인합니다. 웹사이트의.

Vue에서 소스 코드를 표시할 수 있습니다. 1. "git clone https://github.com/vuejs/vue.git"을 통해 vue를 가져옵니다. 2. "npm i"를 통해 종속성을 설치합니다. 3. "npm i -g Rollup"을 통해 롤업을 설치합니다. 4. 개발 스크립트를 수정합니다. 5. 소스 코드를 디버그합니다.

IDEA에서 Tomcat 소스 코드를 보는 단계: 1. Tomcat 소스 코드를 다운로드합니다. 3. Tomcat 소스 코드를 봅니다. 4. Tomcat의 작동 원리를 이해합니다. 7. 도구 및 플러그인 사용 8. 커뮤니티에 참여하고 기여합니다. 자세한 소개: 1. Tomcat 소스 코드 다운로드 Apache Tomcat 공식 웹사이트에서 소스 코드 패키지를 다운로드할 수 있습니다. 일반적으로 이러한 소스 코드 패키지는 ZIP 또는 TAR 형식 등입니다.

Golang 프레임워크 소스 코드를 이해함으로써 개발자는 언어의 본질을 마스터하고 프레임워크의 기능을 확장할 수 있습니다. 먼저, 소스 코드를 얻고 해당 디렉토리 구조에 익숙해지십시오. 둘째, 코드를 읽고, 실행 흐름을 추적하고, 종속성을 이해합니다. 실제 사례에서는 이러한 지식을 적용하는 방법, 즉 맞춤형 미들웨어를 생성하고 라우팅 시스템을 확장하는 방법을 보여줍니다. 모범 사례에는 단계별 학습, 무의미한 복사 붙여넣기 방지, 도구 활용 및 온라인 리소스 참조가 포함됩니다.

Bottle 라이브러리는 가볍기 때문에 사용하기도 매우 간단합니다. 나는 이 글을 읽기 전에 독자들은 이미 Python에 대해 간단한 이해를 갖고 있다고 믿습니다. 그렇다면 수백 줄의 코드로 서버의 기능을 완성할 수 있는 신비한 작업은 무엇일까요? 기다려 보자. 1. Bottle 라이브러리 설치 1) pip를 사용하여 설치 2) Bottle 파일 https://github.com/bottlepy/bottle/blob/master/bottle.py 다운로드 2. "HelloWorld!"라는 말처럼 모든 것이 먼저 성공합니다. HelloWorld는 이 간단한 예를 통해 Bottle의 기본 메커니즘을 이해합니다. 코드부터 시작해 보겠습니다. 먼저 b부터 시작합니다.

PHP 소스 코드 오류: 인덱스 오류 문제를 해결하려면 특정 코드 예제가 필요합니다. 인터넷의 급속한 발전으로 인해 개발자는 웹사이트와 애플리케이션을 작성할 때 다양한 문제에 직면하게 됩니다. 그 중 PHP는 널리 사용되는 서버 측 스크립팅 언어이며 소스 코드 오류는 개발자가 자주 직면하는 문제 중 하나입니다. 가끔 웹사이트의 인덱스 페이지를 열려고 하면 "InternalServerError", "Unde" 등 다양한 오류 메시지가 나타나는 경우가 있습니다.
