course/spartacoding

[웹개발 종합반] 4주차 (1) Flask 기초

hjkim0502 2021. 11. 3. 15:58

1. 로컬 개발환경 : 한 컴퓨터에 서버와 클라이언트 동시에

 

2. Flask: 서버를 구동시켜주는 프레임워크(이미 만들어진 코드 모음)

  • flask 개발자가 정해놓은 규칙에 맞게 내 코드를 작성해야함
  • 통상적으로 서버 구동 파일은 app.py
  • from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def home():
       return 'This is Home!'
    
    if __name__ == '__main__':  
       app.run('0.0.0.0',port=5000,debug=True)
    flask 시작 코드
  • 서버 정상 작동 확인: http://localhost:5000/ 에서
  • 서버 종료: ctrl + c
  • URL 나누기
    • from flask import Flask
      app = Flask(__name__)
      
      # http://localhost:5000/ 에서 확인
      @app.route('/')
      def home():
         return 'This is Home!'
      
      # http://localhost:5000/mypage 에서 확인
      @app.route('/mypage')
      def mypage():
         return 'This is Mypage!'
      
      if __name__ == '__main__':
         app.run('0.0.0.0',port=5000,debug=True)
  • from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def home():
       return '<button>button</button>'
    
    if __name__ == '__main__':
       app.run('0.0.0.0',port=5000,debug=True)
    return 값에 html 코드 삽입 가능
  • flask 기본 폴더구조
    • static 폴더: css, image 파일 넣기
    • templates 폴더: html 파일 넣기
    • app.py파일
    • (venv)
  • # app.py에서 templates 안의 index.html 파일 불러오기
    from flask import Flask, render_template
    app = Flask(__name__)
    
    ## URL 별로 함수명이 같거나,
    ## route('/') 등의 주소가 같으면 안된다
    
    @app.route('/')
    def home():
       return render_template('index.html')
    
    if __name__ == '__main__':
       app.run('0.0.0.0', port=5000, debug=True)
    flask 내장함수 render_template 이용
    • index.html 파일 여는 것과 http://localhost:5000/ 여는 것은 다름
    • 후자는 서버에 요청한 것을 브라우저가 받아 그려준 것, 전자는 그냥 내 컴퓨터에 있는 html 파일 연 것
      • -> 서버와의 통신여부 차이