flask로 웹 만들기

ris 2024. 3. 16. 16:05

최근 심심해서 타이핑하며 지내다가 문득 게시판을 만들면 어떨까라는 생각이 들어 만들어보려 합니다.

저는 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은 무료 템플렛이 있으니 쓰시는 것을 추천드립니다!