[웹개발] Flask 시작하기

Mark·2022년 7월 30일
0
post-thumbnail

👩🏻‍💻 해당 글은 스파르타 코딩클럽 '웹개발 종합반' 강의 및 내용 정리사항을 바탕으로 개인 공부차원에서 정리 및 작성한 글입니다.

✏️ 수강 중인 교육과정 스파르타코딩클럽 [웹개발 종합반]
 

1. Flask 시작하기

1) 서버 만들기

  • flask 패키지 설치 python3 -m pip install flask
  • app.py 파일 생성
  • 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)
  • 실행
export FLASK_ENV=development
flask run 

2) URL 나누기

  • @app.route('/) 부분을 수정해서 URL을 나누면 됨!
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)

  

2. Flask 시작하기

1) 폴더 구조

프로젝트 폴더 안에,
 **ㄴstatic 폴더** (이미지, css파일을 넣어둡니다)
 **ㄴtemplates 폴더** (html파일을 넣어둡니다)
 **ㄴapp.py 파일**

스크린샷 2022-07-25 오후 7.43.08.png

2) index.html 파일 불러오기

  • render_template import 시켜줌
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)

  

3. Flask로 API 만들기

1) GET

  • GET API 코드
@app.route('/test', methods=['GET'])
def test_get():
   title_receive = request.args.get('title')
   print(title_receive)
   return jsonify({'result':'success', 'msg': 'GET 요청'})
  • GET Ajax 코드
$.ajax({
    type: "GET",
    url: "/test?title=hello",
    data: {},
    success: function(response){
       console.log(response)
    }
  })

2) POST

  • POST API 코드
@app.route('/test', methods=['POST'])
def test_post():
   title_receive = request.form['title']
   print(title_receive)
   return jsonify({'result':'success', 'msg': 'POST 요청'})
  • POST Ajax코드
$.ajax({
    type: "POST",
    url: "/test",
    data: { title:'hello' },
    success: function(response){
       console.log(response)
    }
  })

  

추가 사항!

순서(mogodb 연결시 실행이 안되는 에러가 발생하여 해당 순서대로 진행!)

  • 파이썬 인터프리터 설정
  • 터미널에 실행할 파일 경로 설정
  • 패키지 설치
    • pip install dnspython
    • pip install pymongo
  • flask 서버 실행
    • export FLASK_ENV=development
    • flask run
  • db 연결
from pymongo import MongoClient
client = MongoClient('mogoDB설정시 받은 url이 맞는지 확인!')
db = client.[DBNAME]
@app.route("/bucket", methods=["POST"])
def bucket_post():
    bucket_receive = request.form['bucket_give']
    
    count = list(db.bucket.find({},{'_id':False}))
    num = len(count) + 1
    
    doc = {
        'num':num,
        'bucket': bucket_receive,
        'done':0
    }
    
    db.bucket.insert_one(doc)
    return jsonify({'msg':'등록 완료!'})
profile
개인 공부 정리

0개의 댓글