Flask Web Framework

파이썬으로 웹 개발을 하기 위한 프레임워크 중 하나.

서버를 쉽게 만들 수 있다.

django와 함께 파이썬 웹 프레임워크의 양대산맥이며 각기 장단점이 존재한다.

 

Flask - 가볍고 자유로움 (모듈의 선택폭이 넓음)

Django - 편리하고 생산성이 높음(자체 내장 기능으로 익숙해지면 DB 관리가 쉽다)

 

django가 상대적으로  사용자 수는 많아 소스 구하기는 쉽다고 한다.

 

 

 

Flask 기본 폴더구조 

Projects

  ㄴstatic 폴더 (이미지, css파일)

  ㄴtemplates 폴더 (html파일)

  ㄴapp.py 파일

 

 

flask 시작 코드)

1
2
3
4
5
6
7
8
9
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)
cs

http://localhost:5000/ 에 접속해서 로컬(개인) 호스트 작업이 가능하다.

 

 

flask url 나누기)

1
2
3
4
5
6
7
8
9
10
11
12
13
from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def home():
   return 'This is Home!'
 
@app.route('/mypage')
def mypage():  
   return 'This is My Page!'
 
if __name__ == '__main__':  
   app.run('0.0.0.0',port=5000,debug=True)
cs

 

 

flask html 파일 불러오기)

1
2
3
4
5
6
7
8
9
10
11
12
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)
cs

 

 

데이터 주고 받는 법

0) jquery import  (html)

1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
cs

 

1) request,  jsonify import  (python)

1
from flask import Flask, render_template, request, jsonify
cs

 

GET 요청 API코드  (python)

1
2
3
4
5
@app.route('/test', methods=['GET'])
def test_get():
   title_receive = request.args.get('title_give')
   print(title_receive)
   return jsonify({'result':'success''msg''이 요청은 GET!'})
cs

 

GET 요청 확인 Ajax코드  (html)

1
2
3
4
5
6
7
8
$.ajax({
    type: "GET",
    url: "/test?title_give=봄날은간다",
    data: {},
    success: function(response){
       console.log(response)
    }
  })
cs

 

POST 요청 API코드  (python)

1
2
3
4
5
@app.route('/test', methods=['POST'])
def test_post():
   title_receive = request.form['title_give']
   print(title_receive)
   return jsonify({'result':'success''msg''이 요청은 POST!'})
cs

 

POST 요청 확인 Ajax코드  (html)

1
2
3
4
5
6
7
8
$.ajax({
    type: "POST",
    url: "/test",
    data: { title_give:'봄날은간다' },
    success: function(response){
       console.log(response)
    }
  })
cs

 

 

HTTP 요청 메서드

프론트에서 백으로 넘겨줄 데이터가 없을 때는 GET

프론트에서 백으로 넘겨줄 데이터가 있을 때는 POST를 자주 사용한다.

+ Recent posts