Python pyramid 간단 학습하기 - 실제 페이지 구축
Python의 웹 프레임 워크중 pyramid를 간단 학습한 내용을 정리한 포스트입니다.
코드는 깃허브에 올려놨습니다. 해당 코드는 출처 3번의 영상을 보고 제작했습니다.
코드 소개
페이지 코드
home.jinja2
<!DOCTYPE html>
<html lang="ko">
<head>
<title> , </title> <!-- 1 -->
<link rel="stylesheet" href="../static/style.css" />
</head>
<body>
<h1> , </h1> <!-- 1 -->
<img src="../static/tut.jpg" alt="image" style="width: 170px;">
</body>
</html>
- 백앤드 코드에서 greet와 name 변수를 받아 title과 페이지에 출력합니다.
style.css
* {
margin: 0;
padding: 0;
box-sizing: border-box;
background-color: lightgoldenrodyellow;
color: red;
font-family: sans-serif;
}
해당 페이지의 간단한 스타일을 정의한 css 코드입니다.
서버 코드
app3.py
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.view import view_config
@view_config( // 1
route_name='hello',
renderer="/templates/home.jinja2"
)
def home(request): // 2
return {"greet": 'welcome', 'name': 'Tut Ankh Amun'}
if __name__ == '__main__':
HOST = '0.0.0.0'
PORT = 8080
with Configurator() as config:
config.include('pyramid_jinja2') // 3
config.include('pyramid_debugtoolbar') // 4
config.add_static_view(name='static', path='static') // 5
config.add_route('hello', '/')
config.scan()
app = config.make_wsgi_app()
server = make_server(HOST, PORT, app)
print(f'Starting server at {HOST}:{PORT}')
server.serve_forever()
- 라우터 이름을 hello로 하고, 렌더할 페이지의 경로를 지정해 줍니다.
- 페이지에 보낼 변수를 설정합니다.
- jinja2를 사용하기 위해 pyramid_jinja2를 include합니다.
- request되는 값과 여러 정보들을 확인할 수 있도록 하는 toolbar를 생성하기 위해 include합니다.
- static_view에 추가해 자바 스크립트 및 CSS 파일과 같은 자원들의 경로를 지정해 정적 자원을 제공하도록 합니다. 실행이 되 localhost:8080에 접속하면 설정한 변수들에 맞는 내용들이 출력되고, 사진 또한 정상 출력 됩니다.
그리고 사용자 기준 우측 끝 중앙을 확인하면 이상한 UI가 보이는데 그것이 toolbar입니다. 해당 UI를 클릭해 들어가면 request하는 경로와 해당 요청의 자세한 정보가 나옵니다.
참고
pyramid_jinja2, pyramid_debugtoolbar 설치 방법
- Pycharm에서 Terminal을 엽니다.
cd venv
로 사용중인 가상 환경에 접속합니다.pip install pyramid_jinja2
과pip install pyramid_debugtoolbar
를 실행해 라이브러리를 다운로드 받습니다.