web/python & JavaScript
python Flask + mongoDB
3hoon
2022. 10. 25. 16:18
Flask 프레임워크란 서버를 구동시키기위한 python 프레임워크로
간편하게 서버를 구동시킬 수 있도록 도와주는 프레임워크이다.
mongoDB는 NoSQL의 한 종류로 딕셔너리 형태로 데이터를 저장한다.
데이터 마다 고유의 id를 가지지않고 빠른 장점이 있지만 그만큼
데이터의 일관성이 부족 할 수 있다.
Flask 기본 소스코드
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 서버는 모두 app.py 로 통일하는 편이다.
mongo DB 연결 기본 소스코드
from pymongo import MongoClient
import certifi
ca = certifi.where()
client = MongoClient('mongodb+srv://test:sparta@cluster0.xevhlvh.mongodb.net/Cluster0?retryWrites=true&w=majority', tlsCAFile=ca)
db = client.{Database 이름}
Flask를 설치하고 실행한다면 위와 같은 코드가 뜨면서 정상적으로 작동된다.
모든 api와 코드들은 Flask를 구축하면 위와 같은 형태로 로컬에서 동작하며
추후 도메인을 부여하는 등의 작업을 하려면 저 Flask와 연결을 해주어야 한다.
위 사진과 같은 동작 방식을 통해 콘솔창에서는 api들이 요청하고 응답하는 과정이 기록된다.
Flask API 만들때의 소스코드
Jquery CDN
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
Flask GET 요청 API 코드
@app.route('/test', methods=['GET'])
def test_get():
title_receive = request.args.get('title_give')
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
index.html GET 요청 확인 Ajax 코드
$.ajax({
type: "GET",
url: "/test?title_give=봄날은간다",
data: {},
success: function(response){
console.log(response)
}
})
Flask POST 요청 API 코드
@app.route('/test', methods=['POST'])
def test_post():
title_receive = request.form['title_give']
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 POST!'})
index.html Post 요청확인 Ajax 코드
$.ajax({
type: "POST",
url: "/test",
data: { title_give:'봄날은간다' },
success: function(response){
console.log(response)
}
})