today I learned
00. 프로젝트 세팅
1. 클라이언트는 ajax, 서버는 flask로 post 해보기
2. post 해보기
3. 클라이언트는 ajax, 서버는 flask로 get 해보기
4. get 해보기
00. 프로젝트 세팅
1) 새프로젝트로 venv 파일 만들기
2) 경로 static, templates 폴더 만들어주고, 파이썬 app.py 만들어주기
3) templates 내부에 index.html 만들어주기
4) 패키지 설치하기 : flask, pymongo, dnspython, bs4, requests
1. 클라이언트는 ajax, 서버는 flask로 post 해보기
1-1) 서버코드 기본 형태
@app.route("/mars", methods=["POST"])
def mars_post():
sample_receive = request.form['sample_give']
print(sample_receive)
return jsonify({'msg': 'POST 연결 완료!'})
1-2) 클라이언트 코드 기본 형태
function save_order() {
$.ajax({
type: 'POST',
url: '/mars',
data: { sample_give:'데이터전송' },
success: function (response) {
alert(response['msg'])
}
});
}
<button onclick="save_order()">주문하기</button>
1-3) 구조이해
'/mars'
창구를 통해 type 포스트
로 data
에 이름을 붙여 전송하면,'/mars'
창구를 통해 method 포스트
로 data
를 받는다.2. post 해보기
2-1) 서버
@app.route("/mars", methods=["POST"])
def mars_post():
name_receive = request.form['name_give']
address_receive = request.form['address_give']
size_receive = request.form['size_give']
doc = {
'name': name_receive,
'address': address_receive,
'size': size_receive
}
db.orders.insert_one(doc)
return jsonify({'msg': '주문 완료!'})
2-2) 클라이언트
function save_order() {
let name = $('#name').val()
let address = $('#address').val()
let size = $('#size').val()
$.ajax({
type: 'POST',
url: '/mars',
data: { name_give:name, address_give:address, size_give:size },
success: function (response) {
alert(response['msg'])
window.location.reload()
}
});
}
3. 클라이언트는 ajax, 서버는 flask로 get 해보기
3-1) 서버코드 기본 형태
@app.route("/mars", methods=["GET"])
def mars_get():
return jsonify({'msg': 'GET 연결 완료!'})
3-2) 클라이언트 코드 기본 형태
$(document).ready(function () {
show_order();
});
function show_order() {
$.ajax({
type: 'GET',
url: '/mars',
data: {},
success: function (response) {
alert(response['msg'])
}
});
}
4. get 해보기
4-1) 서버
@app.route("/mars", methods=["GET"])
def mars_get():
orders_list = list(db.orders.find({},{'_id':False}))
return jsonify({'orders':orders_list})
4-2) 클라이언트
function show_order() {
$('#order-box').empty()
$.ajax({
type: 'GET',
url: '/mars',
data: {},
success: function (response) {
let rows = response['orders']
for (let i = 0; i < rows.length; i++) {
let name = rows[i]['name']
let address = rows[i]['address']
let size = rows[i]['size']
let temp_html = `<tr>
<td>${name}</td>
<td>${address}</td>
<td>${size}</td>
</tr>`
$('#order-box').append(temp_html)
}
}
});
}