πŸͺ΄ μ„±μž₯일지

μ±… ν–‰λ³΅ν•œ 이기주의자(웨인 닀이어)의 λ‚΄μš©μ— μžκ·Ήλ°›μ•„ μ‹œμž‘ν•˜λŠ” μ†Œλ°•ν•œ μ„±μž₯기둝

μ‚΄μ•„μžˆλŠ” 꽃과 죽은 꽃은 μ–΄λ–»κ²Œ κ΅¬λ³„ν•˜λŠ”κ°€?
μ„±μž₯ν•˜κ³  μžˆλŠ” 것이 μ‚΄μ•„ μžˆλŠ” 것이닀.
생λͺ…μ˜ μœ μΌν•œ μ¦κ±°λŠ” μ„±μž₯이닀!

🌳 ν‚€μ›Œλ“œ μ΅œλŒ€ν•œ κ°„λ‹¨ν•˜κ²Œ 정리, 좔후에 λ³΄λ©΄μ„œ 슀슀둜 μ„€λͺ…

ν΄λΌμ΄μ–ΈνŠΈ 및 μ„œλ²„ κ°„ 톡신(feat. JS, JQuery, Python, flask, Ajax)

예제 μ½”λ“œ(λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ ν”„λ ˆμž„ μ›Œν¬λ₯Ό ν˜ΈμΆœν•˜λŠ” μ½”λ“œλŠ” μƒλž΅)

  • μ½”λ“œ 자체 λ‹¨μˆœν•œ μ˜ˆμ‹œ μ½”λ“œλ‘œ 이 μ½”λ“œ μžμ²΄μ— μ§‘μ€‘ν•˜κΈ°λ³΄λ‹¨ μ–΄λ–»κ²Œ ν΄λΌμ΄μ–ΈνŠΈ(ν”„λ‘ νŠΈ)와 μ„œλ²„(λ°±)이 μ„œλ‘œ ν†΅μ‹ ν•˜λŠ”μ§€ 감을 μž‘μ„ 수 있게 ν•˜μž!
$(document).ready(function () {
  $('body').html(''); // ν™”λ©΄ μ΄ˆκΈ°ν™”(body νƒœκ·Έλ₯Ό λΉˆκ°’μœΌλ‘œ)
  showPage(); // νŠΉμ • νŽ˜μ΄μ§€λ₯Ό λ³΄μ—¬μ£ΌλŠ” ν•¨μˆ˜
});

function showPage() {
  $.ajax({
    type: 'GET',
    url: '/page',
    data: {},
    success: function (response) {
      let pages = JSON.parse(response['value']);
      for (let i = 0; i < pages.length; i++) {
        makePage(
          pages[i]['first'],
          pages[i]['second'],
          pages[i]['_id']['$oid'], // λͺ½κ³ DB의 데이터 id값을 κ°€μ Έμ˜€κΈ° μœ„ν•¨(κ³ μœ κ°’)
        );
      }
    },
  });
}

// 이외에도 GET, POST 등을 μ΄μš©ν•˜μ—¬ μ›Ή μ„œλ²„μ™€μ˜ 톡신을 μœ„ν•œ κΈ°λŠ₯ κ΅¬ν˜„ κ°€λŠ₯
## 이 두 녀석듀은 λͺ½κ³ DB의 _id 객체가 λ‹¨μˆœ λ¬Έμžμ—΄μ΄ μ•„λ‹Œ ObjectIDλΌλŠ” νŠΉλ³„ν•œ 객체이기 λ•Œλ¬Έμ—
## λ”°λ‘œ νŠΉλ³„νžˆ jsonifyν•˜κΈ° μœ„ν•œ 라이브러리
from bson.json_util import dumps
from bson.objectid import ObjectId

@app.route('/')
def home():
  return render_template('index.html')

@app.route('/page', methods=['GET'])
def read_pages():
    result = list(db.pages.find({}))
    return jsonify({'result':'success', 'pages': dumps(result)})

if __name__ == '__main__':
  app.run('0.0.0.0',port=5000,debug=True)
## ν΄λΌμ΄μ–ΈνŠΈλ‹¨κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ μ„œλ²„λ‹¨μ—μ„œλŠ” λ‹€μ–‘ν•œ 응닡에 λŒ€ν•œ λ‹€μ–‘ν•œ 데이터 전달 방법(API)λ₯Ό 지 수 μžˆλ‹€.