728x90
728x90

플라스크 라우팅

- 플라스크에서는 @app.route() 데코레이터(decorator) 함수를 통해서 라우팅을 실행합니다.

- 라우팅 방법으로는 정적 라우팅 방법과 동적 라우팅 방법이 있습니다.

- 먼저 정적 라우팅 방법에 대해서 알아보겠습니다.

 

  정적 라우팅  

- 정적 라우팅은 @app.route()함수에 직접적으로 라우팅할 주소를 지정합니다.

@app.route("/")
def index():

    return render_template('index.html')

- 위 코드 처럼 라우팅 하려는 주소를 넣어주면 됩니다.

- index() 함수 아래에 hello()함수를 정의하고 @app.route('/hello') 로 라우팅 주소를 지정해서 접속해 보겠습니다.

@app.route('/hello')
def hello():
    return 'hello'

 

동적 라우팅

- 정적 라우팅으로 특정 주소를 지정해 놓을 수 있습니다.

- 하지만, 페이지가 많아 진다고 한다면, 모든 페이지를 코드로 만들어 정적 라우팅으로 지정하기에는 너무 불편합니다.

- 동적 라우팅은 변하는 주소에 따라서 그에 맞는 페이지를 로드해 줍니다.

- 변수를 이용해서 동적 라우팅을 실행합니다.

@app.route('/<pagename>')
def hello(pagename):
    return 'hello' + pagename

- @app.route() 에 <> 감싼 변수명을 입력합니다.

- 이 변수를 함수의 파라미터로 지정합니다.

- 함수 안에서 이 변수를 사용합니다.

- hello() 를 수정했습니다.

- /bye 주소로 접속해 보겠습니다.

- 주소로 접속 되고 텍스트가 나타나는 것을 확인할 수 있습니다.

- 변수를 이용해 render_template를 통해서 특정 페이지를 로드할 수도 있습니다.

 

728x90
728x90

플라스크 디버깅 (Flask Debuging)

 

- 플라스크 서버를 실행해서 웹 사이트에 접속을 하게 됩니다.

- 이때 특정 코드를 수정 하면 기본설정의 플라스크 서버가 실행되는 중에는 바로 반영되지 않고, 재시작을 해줘야합니다.

- 개발 과정에서 수정 - > 중지 -> 재시작 단계를 계속 거치는 것은 만족스럽지않습니다.

- 플라스크에서는 디버깅 모드를 통해서 코드를 수정하고 서버 재시작 없이 웹사이트를 새로고침 하거나 재접속 하면 바로 반영됩니다. 

 

디버깅 모드 설정

- 플라스크에서 디버깅 모드를 실행하는 것은 아주 간단합니다.

- 아래의 명령어를 추가하는 것만으로 실행 할 수 있습니다.

app.run(debug=True)

- 이제 플라스크 서버를 실행 하고 앞서 만들어 놓았던 index.html 코드를 수정해 보겠습니다.

 

서버 실행

- 서버를 실행하게 되면, Debug mode 가 On으로 바뀐 것을 볼 수 있습니다.

웹사이트 접속

- 서버를 실행하고 나서 웹사이트에 접속해 보면 앞서 만들어둔 index.html을 통해 만들어진 페이지가 나타나는 것을 볼 수 있습니다.

 

 

index.html 수정

- 이제 코드를 수정하고 바로 반영해 보겠습니다.

- 기존의 index.html 파일에 '수정사항 반영' 이라는 텍스트를 추가 해보겠습니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
<h1>안녕하세요.</h1>
<h2>웹사이트에 방문해 주셔서 감사합니다.</h2>
<h3>수정사항 반영</h3>

</body>
</html>

 

웹사이트 반영

- 수정한 코드를 저장하고 브라우저에 띄어진 웹사이트를 새로고침 해보면 수정사항이 바로 반영 된 것을 볼 수 있습니다.

728x90
728x90

  render_template  

- 플라스크 코드 내에서 hmtl 마크업 언어를 사용해서 웹사이트를 제작하여 나타낼 수 있습니다.

- html 코드들을 플라스크내에 사용하는 것보다 .html 파일을 만들어서 라우팅하는 방법이 좀 더 깔끔하고, 관리하기에도 편합니다.

- 플라스크는 render_template 모듈을 통해서 .html파일을 렌더링 하여 브라우저를 통해 보여 줄 수 있습니다.

- 앞의 포스팅을 통해 만들어 놓은 app.py에 이어서 진행해 보겠습니다.

 

  templates 디렉토리 생성  

- 먼저 render_template 를 사용하기 위해서는 templates 디렉토리가 필요합니다.

- flask_server 하위에 templates 디렉토리를 만들어 줍니다.

 

 

 

 

  index.html 생성  

- 이제 templates 디렉토리 안에 index.html 을 생성해 줍니다.

- 파이참의 파일 생성에서는 .py 뿐만 아니라 html 파일도 생성할 수 있습니다.

 

 

- html 생성을 선택하면 파일 이름을 입력하는 항목과 html 버전을 선택할수 있습니다.

- 저는 html5를 선택 하겠습니다.

 

- index.html 파일을 생성하면 기본적인 Tag(태그)들이 입력되어 만들어 집니다.

 

 

  index.html 수정 

 

- index.html 파일 내용을 간단하게 수정해 보겠습니다.

- head 태그안에 있는 title 태그의 텍스트를 Hello로 수정합니다.

- body 태그 안에 h1태그를 추가 하고 , '안녕하세요'를 텍스트로 추가합니다.

- 그 아래에 h2태그를 추가 하고, '웹사이트에 방문해 주셔서 감사합니다.'를 추가합니다.

 

   Tip     

태그 입력시 태그 네임만 입력후 Tab키를 누르면 자동으로 <></>씌어져 생성됩니다.

ex) div-> tab -> <div></div>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
<h1>안녕하세요.</h1>
<h2>웹사이트에 방문해 주셔서 감사합니다.</h2>
</body>
</html>

 

  모듈 Import  

 

- 이제 app.py로 이동합니다.

- import 임포트 해놓은 Flask에 추가적으로 render_tamplate 를 import 해 주겠습니다.

 

from flask import Flask,render_template

 

 

  hello 함수 수정  

 

- app.py에 작성되어 있는 hello함수를 수정하겠습니다.

- return 뒷 부분을 render_template('index.html')으로 수정합니다.

 

- 변경전

return "Hello World!"

- 변경후

return render_template('index.html')

 

from flask import Flask,render_template
app = Flask(__name__)

@app.route("/")
def hello():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

 

  플라스크 실행  

- 파이참 run을 이용해 플라스크 서버를 실행해 줍니다.

- 실행 후 표시되는 url링크를 클릭하여 접속합니다.

- index.html이 잘 표시되어 나타나는 것을 확인할 수 있습니다.

 

728x90
728x90

  Flask(플라스크)  

- 파이썬 마이크로 웹 프레임 워크

- 심플함(Simple)과 확장성(Extensible)을 가지고 있습니다.

- Django가 많은 기능들을 포함하여 손쉽게 쓸 수 있다면 Flask는 필요한 기능들을 만들어 주어야 하지만, 그만큼 가볍고 확장성이 크다는 장점이 있습니다.

  환경  

- Window 10

- Anaconda (아나콘다)

- python 3.7 (파이썬 3.7버전)

- 파이참

- Flask(플라스크)

등을 사용하여 Flask를 이용한 웹 서버를 만들고 , 웹 사이트를 제작해보도록 하겠습니다.

  플라스크 설치  

- 플라스크 설치는 아나콘다 가상환경에서 진행됩니다.

conda install flask

또는

pip install flask

명령어를 통해서 플라스크를 설치해 줍니다.

  파이참 실행  

- 새 프로젝트를 생성하고 interprinter로 아나콘다 가상환경에 설치된 파이썬3.7번전을 세팅해줍니다.

- 원하는 디렉토리에 flask_server폴더를 생성해 줍니다.

  app.py 생성  

- flask_server 디렉토리 하위에 app.py 파일을 생성합니다.

- flask 를 import 시키고 'Hello World!'를 출력하는 코드를 작성해 줍니다.

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

  플라스크 서버 시작  

- 파이참의 터미널을 통해서 플라스크를 실행합니다.

flask run

명령어를 입력하면 서버가 실행되고 url 링크가 나타나고 클릭하면 해당 url의 웹사이트가 브라우저로 표시 되게 됩니다.

  플라스크 실행 다른 방법  

- flask run으로 플라스크를 실행하는 방법 이외에도 플라스크를 실행하는 방법이 있습니다.

- 위에서 작성했던 코드의 마지막에 아래의 코드를 추가해 줍니다.

if __name__ == '__main__':
    app.run()

- 코드 -

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == '__main__':
    app.run()

- 파이참의 run을 통해서 실행하는 방법

- 터미널에서 python app.py 명령어를 통해서 실행하는 방법

python app.py

728x90
728x90
728x90

+ Recent posts