가벼운 만큼 Bottle 라이브러리의 사용도 매우 간단합니다. 나는 이 글을 읽기 전에 독자들은 이미 Python에 대해 간단한 이해를 갖고 있다고 믿습니다. 그렇다면 수백 줄의 코드로 서버의 기능을 완성할 수 있는 신비한 작업은 무엇일까요? 기다려 보자.
1) pip를 사용하여 설치
2) Bottle 파일 다운로드
https://github.com/bottlepy/bottle/blob/master/bottle.py
모든 것이 먼저 성공한다는 말처럼 HelloWorld의 간단한 예를 통해 우리는 Bottle의 기본 메커니즘을 이해할 수 있습니다.
먼저 코드:
먼저 병 라이브러리에서 get 및 run 메소드를 가져옵니다.
다음으로 웹사이트를 구축해야 합니다. 먼저 IP 주소와 포트가 필요합니다. 이 부분은 테스트 단계에서 127.0.0.1(로컬 주소)과 포트 80을 사용하여 완료됩니다. .(브라우저 기본 포트) 다음으로 이동하세요.
이 코드를 실행하세요 python HelloWorld.py
이렇게 하면 웹사이트 서버가 실행되고, 브라우저를 열고 127.0.0.1(:80)
익숙한 404, 오류 메시지 찾을 수 없음: '/'. 물론 이것은 서버 외에 웹사이트에도 매우 중요한 구성요소인 웹페이지가 있기 때문입니다!
브라우저가 IP 주소에 액세스하면 IP에 get 요청을 보내고 웹 페이지 데이터가 반환될 때까지 기다립니다. 그런 다음 병 라이브러리는 이 프로세스를 구현하기 위해 get 메서드를 캡슐화합니다.
코드는 다음과 같습니다.
def 위의 @ 기호를 아시는지 모르겠습니다. 이 기호는 Python 구문에서 데코레이터를 의미하는 것으로 간단히 이해하면 됩니다. 홈페이지. 여기서 @get('/')는 브라우저가 GET 127.0.0.1/ 요청을 보낼 때 홈페이지를 해당 함수로 장식합니다. 모든 처리를 수행하고 마지막으로 get 요청에 대한 응답을 반환할 수 있습니다. 여기서 다시 실행하면 다음과 같은 효과가 나타납니다.
병에 캡슐화된 템플릿 메소드를 사용하여 웹 페이지 데이터를 .tpl 파일에 별도로 작성할 수도 있습니다. 예는 다음과 같습니다.
run 함수에는 매개변수 리로더도 있습니다. 이를 True로 설정하면 변경 사항이 있을 때 자동으로 서버를 다시 로드하므로 핫 업데이트가 가능합니다. 웹사이트의.
위에서 get('/')을 사용했듯이 기본적으로는 서버가 실행되기 전에 결정된 주소를 이 방법을 사용하여 라우팅할 수 있습니다.
그렇다면 서버 런타임이라면 어떨까요? 예를 들어, 웹 사이트 서버의 파일에 대한 액세스는 정적 방식으로 수행할 수 없습니다. 이 경우 동적 라우팅을 사용할 수 있습니다.
Bottle의 동적 라우팅은 get과 유사하게 데코레이터를 사용하여 라우팅 기능을 구현하는 기능을 사용합니다.
여기서 데코레이터의 매개변수 'name'에 독특한 것이 나타나는 것을 볼 수 있습니다. 수정된 함수의 매개변수는 콜론 뒤의 매개변수와 이름이 동일합니다. 함수에서는 이름 매개변수를 처리 변수로 사용하고 최종적으로 응답을 반환할 수 있습니다.
동적 라우팅을 사용하면 파일 라우팅에 편의성을 제공할 수 있습니다. 서버에는 수백 또는 수천 개의 파일이 저장되어 있을 수 있으며 각 파일에 대해 고정 주소에 의존하는 것은 불가능합니다.
여기서 새로운 함수 static_file을 볼 수 있습니다. 첫 번째 매개변수는 파일 이름이고 두 번째 매개변수는 루트 디렉터리 주소(즉, 파일 위치)입니다.
-- HelloWorld.py
--store1.txt
브라우저를 방문하여
물론 파일을 폴더에 넣을 수도 있습니다. 루트 매개변수를 폴더 주소로 바꾸면 됩니다. .
더 복잡한 기능을 구현하려면 GET 메서드뿐만 아니라 POST 메서드도 사용해야 합니다. 여기서는 HTML 언어의 Form을 사용하여 POST 요청에 대한 Bottle 라이브러리의 응답을 보여줍니다.
먼저 위와 같이 파일을 업로드하는 창을 구현합니다.
여기의 페이지는 간단한 양식 제출 인터페이스입니다. 여기서는 자세히 소개하지 않겠습니다.
다음 POST 응답 코드는 다음과 같습니다.
Bottle 라이브러리에서 post 메소드를 가져와서 요청하세요.
get 메소드와 유사하게 post를 사용하여 응답 함수를 장식한 다음 함수 본문의 request를 사용하여 웹사이트 서버에서 받은 post 요청 본문을 가져옵니다. request.forms.get() 메소드는 Key에 해당하는 문자열을 Form에서 꺼내고, request.files.get() 메소드는 Key에 해당하는 파일을 Form에서 꺼내고, save 메소드는 다음과 같습니다. 파일 업로드를 위해 데이터를 저장하는 데 사용됩니다.
다음으로 테스트를 수행합니다.
업로드를 클릭한 후 서버 루트 디렉터리(파이썬 파일의 위치)를 열고 파일이 성공적으로 업로드되었는지 확인합니다!
이러한 기능을 완료한 후에는 병을 네트워크에 배포해야 합니다. 결국 로컬에서만 실행된다면 웹사이트가 무슨 소용이 있을까요?
Tsinghuanet은 각 네트워크 액세스 포인트에 대해 공용 IP를 제공합니다. cmd에서 ipconfig를 사용하여 IP 주소를 확인하고 실행 중인 매개변수를 공용 IP로 변경한 다음 모든 장치에 로그인하십시오. IP 주소와 포트 번호를 입력하세요. (기본값 80) 브라우저에서(휴대폰 권장, 컴퓨터 브라우저는 가끔 속도가 매우 느림) 접속하시면 됩니다!
Bottle 라이브러리에는 쿠키 읽기 및 쓰기, 플러그인 설치, 제거 및 비활성화가 모두 포함되어 있으며 다른 서버에도 배포할 수 있으며 이러한 기능은 매우 간단합니다. 독자들이 더 자세히 알아보기를 기다리고 있습니다!
위 내용은 Python 경량 웹 프레임워크: Bottle 라이브러리!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!