Python 웹 응용 프로그램 시작
개시하다
이 글은 Zenn의 온라인 책입니다.
"정체된 3년차 웹 엔지니어를 위해 파이썬 웹 응용 프로그램 자작 입문"
의 일부 발췌문.
여기.
동시에 읽어주세요.
Python으로 웹 서버를 써 보십시오
갑작스럽지만 파이톤으로 브라우저로부터 요청을 받아 브라우저에 응답하는 서버를 만들어 보세요.
다음 프로그램은 자신의 PC 포트 8080
localhost:8080
을 서버로 시작하여 브라우저로부터 요청을 받았을 때 그 내용을 server_recv.txt
라는 파일에 쓴 다음 server_send.txt
라는 이름의 파일의 내용을 읽고 응답으로 브라우저로 되돌려줍니다.TCPServer.py
import socket
class TCPServer:
"""
TCP通信を行うサーバーを表すクラス
"""
def serve(self):
"""
サーバーを起動する
"""
print("=== サーバーを起動します ===")
try:
# socketを生成
server_socket = socket.socket()
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# socketをlocalhostのポート8080番に割り当てる
server_socket.bind(("localhost", 8080))
server_socket.listen(10)
# 外部からの接続を待ち、接続があったらコネクションを確立する
print("=== クライアントからの接続を待ちます ===")
(client_socket, address) = server_socket.accept()
print(f"=== クライアントとの接続が完了しました remote_address: {address} ===")
# クライアントから送られてきたデータを取得する
request = client_socket.recv(4096)
# クライアントから送られてきたデータをファイルに書き出す
with open("server_recv.txt", "wb") as f:
f.write(request)
# クライアントへ送信するレスポンスデータをファイルから取得する
with open("server_send.txt", "rb") as f:
response = f.read()
# クライアントへレスポンスを送信する
client_socket.send(response)
# 通信を終了させる
client_socket.close()
finally:
print("=== サーバーを停止します。 ===")
if __name__ == '__main__':
server = TCPServer()
server.serve()
반품용server_send.txt
도 제작.server_send.txt
HTTP/1.1 200 OK
Date: Wed, 28 Oct 2020 07:57:45 GMT
Server: Apache/2.4.41 (Unix)
Content-Location: index.html.en
Vary: negotiate
TCN: choice
Last-Modified: Thu, 29 Aug 2019 05:05:59 GMT
ETag: "2d-5913a76187bc0"
Accept-Ranges: bytes
Content-Length: 45
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
<html><body><h1>It works!</h1></body></html>
시운전 프로그램
콘솔에서 원본 코드를 설치한 디렉터리로 이동하고 다음 명령을 사용하여 프로그램을 실행합니다.
$ python TCPServer.py
=== サーバーを起動します ===
=== クライアントからの接続を待ちます ===
콘솔 레이블이 열려 있고 브라우저에서 액세스할 수 있습니다http://localhost:8080
.안전하게 웹페이지로 표시됐죠!
웹 서버 구조 이해
리뷰 외에도 열 몇 줄만 있으면 상당히 원시적인 웹 서버를 시작할 수 있다.
(지금은 웹 서버라고 할 수 있는 하얀 물건이 아니라 TCP 서버라고 정확하게 부른다.)
어떤 일이든 구조를 이해하기 위해 스스로 해 보는 것이 가장 빠른 길이다.
웹 서버와 웹 프레임워크의 구조를 이해하고자 하는 사람은 반드시 온라인 책을 읽어야 한다
읽어주세요!
이 기사의 원본 코드에 대한 해설도 있다.
Reference
이 문제에 관하여(Python 웹 응용 프로그램 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/bigen1925/articles/a006293d66dfb135738c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)