IT/파이썬

파이썬 Flask (웹앱 만들기) 1

thesse 2021. 5. 18. 16:44
300x250
반응형

flask 임포트해서 웹앱 돌리기

from flask import Flask

# 앱 생성하고 이름 지정
app = Flask("SuperScrapper")

# 데코레이터로 루트 설정
@app.route("/")
def hello():
    return 'hello hel'

@app.route("/contact")
def contact():
    return 'contact me!'

# 앱 실행
app.run(host="127.0.0.1", port="5000")

-------------------------------------------------
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [18/May/2021 16:50:26] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [18/May/2021 16:50:30] "GET /contact HTTP/1.1" 200 -
127.0.0.1 - - [18/May/2021 16:50:38] "GET /ee HTTP/1.1" 404 -

app.run()과 같이 지정 안할수도 있음 (localhost:5000이 기본)

@app.route("/")의 @는 어노테이션이 아니라 데코레이터임 (어노테이션은 스프링에서 쓰는 것)

 

 

dynamic url (url로 파라메터 받기)

@app.route("/contact/<who>")
def contact():
    return 'contact me!'
    
-------------------------------------------
TypeError: contact() got an unexpected keyword argument 'contact'
127.0.0.1 - - [18/May/2021 17:19:25] "GET /ee HTTP/1.1" 500 -

<who>로 파라메터 받았지만 contact()가 안받아줘서 500에러

 

contact(who)로 받아주면 아래처럼 동작

@app.route("/contact/<who>")
def contact(who):
    return f'contact {who}!'

 

html 리턴

이렇게 쌩 스트링으로 줘도 동작은 함..

@app.route("/")
def home():
    return "<h1>Job Search</h1>"

 

 

 

html 파일 따로 작성해서 render_template로 반환

(render_template 임포트 필요)

from flask import render_template

@app.route("/")
def home():
    return render_template("searchHome.html")

 

이때 html 파일의 위치는 main.py와 같은 레벨에 있는 templates 폴더 아래에 둬야 한다

 

기본 템플릿 폴더를 변경하려면 아래처럼 app 정의할때 template_folder 설정

(templates 폴더가 아닌 tempate 폴더로 지정한 예시)

app = Flask("SuperScrapper", template_folder="template")
300x250
반응형

'IT > 파이썬' 카테고리의 다른 글

파이썬 가상환경  (0) 2021.05.21
파이썬 Flask (웹앱 만들기) 2  (0) 2021.05.18
파이썬 클래스(Django)  (0) 2021.05.18
파이썬 패킹, 언패킹  (0) 2021.05.17
파이참에서 모듈 추가하기  (0) 2021.05.17