πŸ‘©πŸ»β€πŸ’» 크둀링을 ν™œμš©ν•œ μ‚¬μ΄νŠΈ μ œμž‘ - 3

sebinnnnnΒ·2023λ…„ 1μ›” 16일
0
post-thumbnail

1️⃣ μ‚­μ œ κΈ°λŠ₯ κ΅¬ν˜„

μ‚­μ œ κΈ°λŠ₯을 λ§Œλ“€κΈ° μ „κΉŒμ§€λŠ” λ‹¨μˆœνžˆ url을 받아와 μ €μž₯ν•˜κ³  λ°›μ•„μ˜¨ url 정보λ₯Ό μΉ΄λ“œ ν˜•νƒœλ‘œ λ³΄μ—¬μ£ΌλŠ” 것에 λΆˆκ³Όν–ˆλ‹€.
ν•˜μ§€λ§Œ, ν•„μš” μ—†λŠ” 데이터 ν˜Ήμ€ 잘λͺ» κ°€μ Έμ˜¨ 데이터λ₯Ό μ‚­μ œν•  수 μžˆμ–΄μ•Ό ν–ˆλ‹€.
β†’ μ‚­μ œ κΈ°λŠ₯이 μ—†λ‹€λ©΄... λΆˆν•„μš”ν•œ 데이터가 계속 μŒ“μ΄κ³  μ‚¬μš©μžλ„ μ›ν•˜μ§€ μ•Šμ€ 정보λ₯Ό 계속 λ΄μ•Όλ§Œ ν•œλ‹€. (세상 λΆˆμΉœμ ˆν•œ μ‚¬μ΄νŠΈκ°€ λ˜λŠ” 것 γ…œ)

데이터λ₯Ό μˆ˜μ •ν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•΄ λ΄€κΈ° λ•Œλ¬Έμ— μ΄λ•Œ μ‚¬μš©ν–ˆλ˜ μ½”λ“œλ“€μ„ 잘 ν™œμš©ν•΄μ„œ μ‚­μ œ κΈ°λŠ₯을 κ΅¬ν˜„ν•  수 μžˆμ—ˆλ‹€.

  1. μƒμ„±λ˜λŠ” μΉ΄λ“œμ— 고유 번호λ₯Ό λΆ€μ—¬ν•˜μž!
    μ›ν•˜λŠ” μΉ΄λ“œλ₯Ό μ‚­μ œν•˜κΈ° μœ„ν•œ 쑰건을 λ¬΄μ—‡μœΌλ‘œ ν•΄μ•Ό ν• κΉŒ 고민을 ν•˜λ‹€κ°€ μ• μ΄ˆμ— DB에 처음 μ €μž₯을 ν•  λ•Œ μΉ΄λ“œμ— κ³ μœ ν•œ 번호λ₯Ό μƒμ„±ν•˜κΈ°λ‘œ ν–ˆλ‹€.
    DB μ‚­μ œ 쑰건으둜 κ°„λ‹¨ν•˜κ²Œ 고유 번호λ₯Ό λ°›μ•„μ˜€λ©΄ μ‰½κ²Œ μΌμΉ˜ν•˜λŠ” 데이터λ₯Ό 찾을 수 있고 또 μ‚­μ œν•  수 μžˆλ‹€.
page_list = list(db.pages.find({}, {'_id': False}))
    count = len(page_list) + 1

    doc = {
        'url': url_receive,
        'title': title,
        'image': image,
        'desc': desc,
        'num': count
    }

β†’ 전체 DB 길이λ₯Ό κ΅¬ν•΄μ„œ DB의 μˆ«μžμ— + 1을 ν•˜λŠ” μ‹μœΌλ‘œ μƒμ„±λœ μΉ΄λ“œμ— κ³ μœ ν•œ 번호λ₯Ό λΆ€μ—¬ν•œλ‹€.

<button onclick="delete_video(${num})" type="button" class="btn btn-outline-dark" style="margin-top: 10px">Delete</button>

β†’ temp_html에 μ‚­μ œ λ²„νŠΌμ„ 넣을 λ•Œ DB μ €μž₯ λ•Œ μƒμ„±ν•œ 고유 번호λ₯Ό ν•΄λ‹Ή λ²„νŠΌμ— λΆ€μ—¬ν•œλ‹€.

  1. ν΄λΌμ—μ„œλŠ” μ‚­μ œ ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜μΈ num을 κ·ΈλŒ€λ‘œ κ°€μ Έμ™€μ„œ μ„œλ²„λ‘œ μ „λ‹¬ν•œλ‹€.
function delete_page(num){
        $.ajax({
            type: 'POST',
            url: '/delete/page',
            data: {num_give: num},
            success: function (response) {
                alert(response['msg'])
                window.location.reload()
            }
        });
    }

β†’ λ§€κ°œλ³€μˆ˜λ‘œ λ°›μ•„ 온 번호λ₯Ό μ„œλ²„λ‘œ 전달!

  1. μ„œλ²„λŠ” ν΄λΌμ—μ„œ λ°›μ•„ 온 번호λ₯Ό 쑰건으둜 쑰건에 ν•΄λ‹Ήν•˜λŠ” μΉ΄λ“œ 데이터λ₯Ό μ‚­μ œν•œλ‹€.
@app.route("/delete/page", methods=["POST"])
def delete_page():
    num_receive = request.form['num_give']

    db.pages.delete_one({'num': int(num_receive)})
// ν΄λΌμ—μ„œ λ°›μ•„μ˜¨ 숫자 λ°μ΄ν„°λŠ” μ„œλ²„μ—μ„œ 받을 λ•Œ 문자둜 μΈμ‹ν•˜κΈ° λ•Œλ¬Έμ— κΌ­ 숫자 데이터 νƒ€μž…μœΌλ‘œ λ³€ν™˜μ΄ ν•„μš”ν•˜λ‹€!
// μ—λŸ¬κ°€ 생길 수 μžˆλŠ” λΆ€λΆ„!!

    return jsonify({'msg': 'μ‚­μ œ μ™„λ£Œ'})

⭐️ μ£Όμ˜ν•  점 ⭐️

: ν΄λΌμ—μ„œ 데이터λ₯Ό 받을 λ•Œ 숫자 λ°μ΄ν„°μ˜ 경우 μ„œλ²„λŠ” 문자 λ°μ΄ν„°λ‘œ μΈμ‹ν•˜μ—¬ λ°›κ²Œ λœλ‹€. λ”°λΌμ„œ, 쑰건에 λ¬Έμžκ°€ μ•„λ‹Œ 숫자둜 인식할 수 μžˆλ„λ‘ int()λ₯Ό λ°˜λ“œμ‹œ λ„£μ–΄μ•Ό ν•œλ‹€!
β†’ λ§Œμ•½ μ‚­μ œ λ²„νŠΌμ„ 클릭해도 μ•„λ¬΄λŸ° λ³€ν™”κ°€ μ—†λ‹€λ©΄ 숫자 λ³€ν™˜μ„ ν–ˆλŠ”μ§€, λ¨Όμ € 생각해 보면 쒋을 것 κ°™λ‹€!

profile
🏠 λΈ”λ‘œκ·Έ 이전 쀑 β†’ https://medium.com/@sebinndev

0개의 λŒ“κΈ€