프레임워크가 필요 없는 파이썬 웹사이트 파트 2
, 이 두 기사의 목적은 새로운 개발자에게 프레임워크나 다른 PyPI 패키지를 사용하지 않고 파이썬으로 웹사이트를 만들 수 있다는 것을 보여주는 것입니다.
코드 표시
먼저 보기, 템플릿 및 논리를 분리해야 합니다.
우리는 다음과 같은 폴더 구조를 가질 것입니다:
--- mainFolder
---- app.py
--------- views
----------- __init__.py
----------- views.py
--------- templates
----------- index.html
--------- utils
----------- __init__.py
----------- render.py
HTML 템플릿을 렌더링하는 코드를 작성할 render.py 파일부터 시작하겠습니다.
# mainFolder/utils/render.py
def render(path):
with open(path, "r") as f:
template= f.read()
return template.encode("utf-8")
init.py에서 렌더링 메서드를 가져옵니다.
#mainFolder/utils/__init__.py
from .render import render
이제 HTML 템플릿으로 이동하여 이 코드를 추가합니다.
<!-- mainFolder/templates/index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<header>
<h1>Home page</h1>
</header>
<main>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ut
pellentesque sapien. Donec id pellentesque sem. Praesent vel urna vitae
odio hendrerit malesuada et nec enim. Nulla risus dui,
</p>
<form action="/" method="POST">
<input type="text" name="text" value="azaze" />
<button type="submit">Submit</button>
</form>
</main>
</body>
</html>
이제 보기를 추가해 보겠습니다.
# mainFolder/views/index.py
from utils import render
def index(environ):
return render("templates/index.html")
보기 폴더의 init.py 파일에서 인덱스 가져오기
# mainFolder/views/__init__.py
from .index import index
마지막 단계는 메인 파일인 app.py를 클라이언트 측으로 응답을 보내고 게시 요청을 처리할 위치로 이동합니다.
from views import index
def app(environ, start_response):
data = index(environ)
if environ['REQUEST_METHOD'] == "POST":
print("inputs ----------------- ", environ['wsgi.input'].read())
start_response("200 OK", [
("Content-Type", "text/html"),
("Content-Length", str(len(data)))
])
return iter([data])
if __name__ == '__main__':
from gevent.pywsgi import WSGIServer
WSGIServer(('', 8000),app, spawn=None).serve_forever()
당신은 실행할 수 있습니다
python app.py
헤더, 입력 양식 및 제출 버튼이 있는 HTML 템플릿이 표시됩니다.
입력에 텍스트를 추가하고 제출 버튼을 누르고 콘솔을 확인하면 텍스트가 표시됩니다.
inputs ----------------- b'text=azaze'
::1 - - [2020-10-02 13:06:19] "POST / HTTP/1.1" 200 777 0.003350
추가 탐색을 위해
Do it your self framework
WSGI handle post request
소셜 바닥글
Toumi Abderrahmane 지음. github
Reference
이 문제에 관하여(프레임워크가 필요 없는 파이썬 웹사이트 파트 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/abderrahmanemustapha/a-python-website-no-framework-needed-part-2-mj0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)