최근 심심해서 타이핑하며 지내다가 문득 게시판을 만들면 어떨까라는 생각이 들어 만들어보려 합니다.
저는 flask 라는 python 라이브러리를 사용할 것이고 다른 라이브러리도 많지만 제가 찾아본 결과 공부하는데에 있어서는 flask가 가장 효율적이라고 생각되었습니다.
*framwork(프레임워크)는 작업을 빠르게 하기 위한 틀같은 것이다.
vscode에서 진행했고 그럼 바로 시작하겠습니다.
cmd에서 pip를 사용해 flask를 다운로드해주시면 됩니다.
할 것들을 정리해보죠
- 1. 웹 만들기
- 2. html을 사용해 페이지 꾸미기
1번부터 바로 해보죠
[python] flask 기본 예제
가장 간단한 코드입니다.
flask의 Flask라는 class를 import해서
app이란 객체에 Flask 클래스를 담았습니다.
여기서 __name__는 몇 가지 기능들을 담당합니다.
__name__을 출력하면 보통 모듈의 이름이 나옵니다.
하지만 만약 실행되는 .py라면 __main__으로 나옵니다.
그리고 시스템 경로를 설정 혹은 찾기 위해 사용합니다.
참고로 단일 모듈이라면 지정하지 않고 그냥 쓰면 되지만 패키지 형태인 경우 지정해줘야합니다.
단일 모듈: app = Flask(__name__)
패키지: app = Falsk('지정')
@app.route('/') 는 url 뒤의 페이지를 만들 때 지정하기 위해 쓰는 것입니다.
만일 기본 상태에서 주어지는 url인 127.0.0.1:5000을 예로 들자면
127.0.0.1:5000/(page)
이런 느낌입니다.
그리고 아래에 있는 함수는 저 주소로 들어간다면 return 된 형태로 페이지를 구성하는 것입니다.
실행 단계입니다.
이건 파이썬 파일을 '직접' 실행하였을 때만 작동하겠다라는 의미의 코드입니다.
__name__은 아까 말했던 것처럼 .py에서만 __main__이 된다고 했습니다.
여기선 app.py 하나로만 작업해서 그렇지 만일 여러개의 파일로 이루어져 있다면 여러개의 파일에 있는 __name__과 혼선이 생길 수 있습니다.
이걸 방지하기 위해 다른 파일엔 모듈 이름을, 직접 실행하는 .py엔 __main__을 붙여 구별하는 목적입니다.
이렇게 실행하고 주소로 들어가보면
테두리가 없어 헷갈리실 수도 있지만 페이지입니다.
이렇게 1번은 마무리하였고 2번을 해보도록 하겠습니다.
[python] flask와 html 연동
페이지를 만들 때마다 항상 글로만 표현할 수는 없기에 이젠 html로 여러 기능들이 담겨있는 페이지를 만들겁니다.
우선 flask에 있는 기능들 중 하나인 render_templates를 사용해 구현해보겠습니다.
index.html
html로 간단한 페이지를 만들어보았습니다.
head 태그 부분은 아직 신경쓰지 말고 body 태그 부분을 보면 <a>~~~</a> 가 있습니다
a 태그는 p 태그와 비슷하게 본문을 쓰는 용도지만 다른 점은 클릭 시 지정한 url로 이동할 수 있게 만들 수 있습니다.
나중에 만들 login 페이지를 위해 남겨뒀습니다.
코드입니다.
render_template(파일명)을 해주면 간단히 할 수 있습니다.
허나 여기서 주의점이 있습니다.
render_template은 templates 파일 안에 있는 html만 감지하기에 무조건 안에 만들어야합니다.
그리고 다른 주의점으론
파일명도 같이 쓰면 안됩니다.
이것때문에 몇시간을 날린 입장이라 제가 기억하기 위해서 남깁니다.
무조건 파일명!
어찌되었든 이렇게 실행해주면
끝!
참고로 html은 무료 템플렛이 있으니 쓰시는 것을 추천드립니다!
'웹' 카테고리의 다른 글
Window 10/11에서 Apache + php8 연동하는 법 (직접 설치) (3) | 2024.05.15 |
---|---|
flask로 웹 만들기 2 (+Mysql) (0) | 2024.04.04 |
flask 로그인 기능 구현(db x) (0) | 2024.03.27 |