상세 컨텐츠

본문 제목

전체 코드

카테고리 없음

by bumychoi 2024. 4. 22. 15:50

본문

from main import *

@app.route('/')
def home():

    return render_template("index.html")

if __name__=="__main__":
    app.run(port='0.0.0.0')

app.py

from flask import Flask,render_template,request, url_for, abort, redirect, redirect,jsonify
from bson.objectid import ObjectId
from pymongo import MongoClient
import math

client = MongoClient("mongodb+srv://sparta:test@cluster0.wu64ps9.mongodb.net/")
db = client.d_bar

app= Flask(__name__)

from main import home,d_bar
app.register_blueprint(home.bp)
app.register_blueprint(d_bar.bp)

__init__.py

from main import *
from flask import Blueprint


bp = Blueprint("home", __name__, url_prefix='/home')


@bp.route("/mv/")
def home():
    mv_list = list(db.mv.find({}).sort({"date": -1}))
    page = request.args.get("page",1,type=int)
    limit = request.args.get("limit",10,type=int)
    mv_list= list(db.mv.find({}).skip((page-1)*limit).limit(limit).sort({"date":-1}))
    tot_count = db.mv.count_documents({})
    last_page_num = math.ceil(tot_count/limit)

    block_size = 5
    block_num = int((page-1)/block_size)
    block_start = int((block_size * block_num)+1)
    block_last = math.ceil(block_start+(block_size)-1)

    return render_template("home.html",title="리스트",
                        lists=mv_list,
                        limit=limit,
                        page=page,
                        block_start=block_start,
                        block_last=block_last,
                        last_page_num=last_page_num)

@bp.route("/mv_create/", methods=["GET", "POST"])
def mv_create():
    if request.method == "GET":
        return render_template("mv_create.html",title="본선입력")
    elif request.method == "POST":
        date = request.form["inport_date"]
        mv_name = request.form["mv_name"].upper()
        port_name = request.form["port_name"]
        cago_name = request.form['cago_name']
        agency_name = request.form['agency_name']
        remark = request.form["remark"]
        doc = {
            "date": date,
            "mv_name": mv_name,
            "port_name": port_name,
            "cago_name": cago_name,
            "agency_name": agency_name,
            "remark": remark,
        }
        x = db.mv.insert_one(doc)
        return redirect(url_for("home.read", idx=x.inserted_id,title="본선상세내역"))

@bp.route("/read/<idx>")
def read(idx):
    if idx is not None:
        data = db.mv.find_one({"_id": ObjectId(idx)})

        if data is not None:
            result = {
                "id": data.get("_id"),
                "date": data.get("date"),
                "mv_name": data.get("mv_name").upper(),
                "port_name": data.get("port_name"),
                "cago_name": data.get("cago_name"),
                "agency_name": data.get("agency_name"),
                "remark": data.get("remark"),
            }
        return render_template("read.html", result=result,title="본선상세")
    return abort(404)

@bp.route("/update/<idx>", methods=["GET", "POST"])
def update(idx):
    if request.method == "GET":
        if id is not None:
            data = db.mv.find_one({"_id": ObjectId(idx)})
            if data is not None:
                result = {
                    "id": data.get("_id"),
                    "date": data.get("date"),
                    "mv_name": data.get("mv_name").upper(),
                    "port_name": data.get("port_name"),
                    "cago_name":data.get("cago_name"),
                    "agency_name":data.get("agency_name"),
                    "remark": data.get("remark"),
                }
            return render_template("update.html", result=result,title="수정페이지")
    elif request.method == "POST":
        idx = ObjectId(idx)
        date = request.form["inport_date"]
        mv_name = request.form["mv_name"]
        port_name = request.form["port_name"]
        cago_name = request.form["cago_name"]
        agency_name = request.form["agency_name"]
        remark = request.form["remark"]

        db.mv.update_one(
            {"_id": idx},
            {
                "$set": {
                    "date": date,
                    "mv_name": mv_name,
                    "port_name": port_name,
                    "cago_name":cago_name,
                    "agency_name":agency_name,
                    "remark": remark,
                }
            },
        )
        return redirect(url_for("home.read", idx=idx,title="수정완료"))

@bp.route("/delete/<idx>/", methods=["POST"])
def delete(idx):
    idx = ObjectId(idx)
    db.mv.delete_one({"_id": idx})
    return redirect(url_for('home.home'))

home.py

from main import *
from flask import Blueprint
from bson.objectid import ObjectId

bp = Blueprint("d_bar", __name__, url_prefix='/d_bar')

@bp.route('/d_list')
def d_list():
    d_lists = list(db.mv.find({"cago_name": "철근"}))

    return render_template("d_list.html",d_lists=d_lists,title="철근상세")

@bp.route('/d_detail',methods=['GET'])
def d_detail():
    data = request.args.get('data')
    print(data)
    d_details = list(db.d_list.find({'mv_id':data}))
    for d_detail in d_details:
        d_detail["_id"] = str(d_detail['_id'])

    return jsonify({"result": d_details})

@bp.route('/post', methods=["POST"])
def post_todo():
    mv_id_receive = request.form["mv_id_give"]
    print(mv_id_receive)
    msn_receive = request.form["msn_give"]
    hauju_receive = request.form["hauju_give"]
    p_name_receive = request.form["p_name_give"]
    offer_receive = request.form["offer_give"]
    gangjung_receive = request.form["gangjung_give"]
    size_receive = request.form["size_give"]
    bundle_receive = request.form["bundle_give"]
    mt_receive = request.form["mt_give"]
    storage_receive = request.form["storage_give"]
    print(storage_receive)
    doc = {
        "mv_id":mv_id_receive,
        "msn":msn_receive,
        "hauju":hauju_receive,
        "p_name":p_name_receive,
        "offer":offer_receive,
        "gangjung":gangjung_receive,
        "size":size_receive,
        "bundle":bundle_receive,
        "mt":mt_receive,
        "storage":storage_receive,
    }
    db.d_list.insert_one(doc)

    return jsonify({"msg": "저장 완료!"})

@bp.route('/modify', methods=["POST"])
def modify_todo():
    id_receive = request.form["id_give"]
    # mv_id_receive = redirect.form["mv_id_give"]
    msn_receive = request.form["msn_give"]
    hauju_receive = request.form["hauju_give"]
    p_name_receive = request.form["p_name_give"]
    offer_receive = request.form["offer_give"]
    gangjung_receive = request.form["gangjung_give"]
    size_receive = request.form["size_give"]
    bundle_receive = request.form["bundle_give"]
    mt_receive = request.form["mt_give"]
    storage_receive = request.form["storage_give"]
    id_receive = ObjectId(id_receive)
    db.d_list.update_one({'_id':id_receive},{'$set':{"msn":msn_receive,
                            # "mv_id":mv_id_receive,
                            "hauju":hauju_receive,
                            "p_name":p_name_receive,
                            "offer":offer_receive,
                            "gangjung":gangjung_receive,
                            "size":size_receive,
                            "bundle":bundle_receive,
                            "mt":mt_receive,
                            "storage":storage_receive}})

    return jsonify({"msg":"수정완료"})

@bp.route("/delete",methods=["POST"])
def delet_todo():
    id_receive = request.form["id_give"]
    id_receive = ObjectId(id_receive)
    db.d_list.delete_one({'_id':id_receive})

    return jsonify({"msg":"삭제완료"})



d_bar.py

static

* {
  box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
div,
span,
a,
button,
input {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  color: burlywood
}

/* Style the header */
header {
  background-color: #666;
  padding: 30px;
  text-align: center;
  font-size: 35px;
  color: white;
}

/* Create two columns/boxes that floats next to each other */
nav {
  float: left;
  width: 30%;
  height: 300px;
  /* only for demonstration, should be removed */
  background: #ccc;
  padding: 20px;
}

/* Style the list inside the menu */
nav ul {
  list-style-type: none;
  padding: 0;
}

article {
  float: left;
  padding: 20px;
  width: 70%;
  background-color: #f1f1f1;
  height: 300px;
  /* only for demonstration, should be removed */
}

/* Clear floats after the columns */
section::after {
  content: "";
  display: table;
  clear: both;
}

/* Style the footer */
footer {
  /* footer를 aside위에 올리기 위해 사용(부유객체) */
  position: absolute;
  height: 60px;
  width: 100%;
  padding: 0 25px;
  line-height: 60px;
  color: #8a8c8f;
  border-top: 1px solid #dee5e7;
  background-color: #f2f2f2;
}


/* Responsive layout - makes the two columns/boxes stack on top of each other instead of next to each other, on small screens */
@media (max-width: 600px) {

  nav,
  article {
    width: 100%;
    height: auto;
  }
}

.clicked {
  background-color: aqua;
  border-radius: 25%;
  color: brown;
}

style.css

<!DOCTYPE html>
<html lang="kr">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
        integrity="sha384-4bw+/aepP/YC94hEpVNVgiZdgIC5+VKNBQNGCHeKRQN+PtmoHDEXuppvnDJzQIu9" crossorigin="anonymous">
        integrity="sha384-HwwvtgBNo3bZJJLYd8oVXjrBZt8cqVSpeBNS5n7C8IVInixGAoxmnlMuBnhbgrkm" crossorigin="anonymous">
        </script>
        integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=" crossorigin="anonymous"></script>
    <title>{{title}}</title>
    <style>
        footer {
            position: absolute;
            bottom: 0px;
        }
    </style>
</head>

<header>
    <nav class="navbar navbar-expand-lg bg-body-tertiary">
        <div class="container-fluid">
            <a class="navbar-brand" href="{{url_for('home.home')}}">하역팀홈</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
                aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav">
                    <li class="nav-item">
                        <a class="nav-link active" aria-current="page" href="{{url_for('home.mv_create')}}">본선등록</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="{{url_for('d_bar.d_list')}}">철근본선관리</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">화주관리</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link disabled" aria-disabled="true">화종관리</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
</header>

<body>
    {% block contents %}
    {% endblock %}

    <hr>
    <footer>
        <h4>푸터</h4>
        <h6>여기에는 푸터가 들어갑니다.</h6>
    </footer>
</body>

</html>

main.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>여기는 bummy의 홈입니다.</title>
    <style>
        div {
            width: 1650px;
            height: 790px;
            background-position: center;
            background-size: cover;
            color: white;
        }
        a{
            color: white;
        }
    </style>
</head>

<body>
    <div>
        <h1>여기는 bummy의 홈입니다.</h1>
        <a class="navbar-brand" href="http://127.0.0.1:5000/home/mv/">하역팀홈</a>

    </div>
</body>

</html>

index.html

<body>
    {% extends "main.html" %}

    {% block contents %}
    <table class="table table-striped table ">
        <thead class="table-primary ">
            <tr>
                <td>순 번</td>
                <td>입 항 일</td>
                <td>본 선 명</td>
                <td>화 종</td>
                <td>대 리 점</td>
                <td>하 역 사</td>
                <td>비 고</td>
            </tr>
            <hr>
        </thead>
        <tbody>
            {% for list in lists %}
            <tr>
                <td>
                    <a href="{{url_for('home.read',idx=list._id)}}">
                        {{ loop.index +(page-1)*limit}}
                    </a>
                </td>
                <td>
                    <a href="{{url_for('home.read',idx=list._id)}}">
                        {{ list.date }}
                    </a>
                </td>
                <td>
                    <a href="{{url_for('home.read',idx=list._id)}}">
                        {{ list.mv_name }}
                    </a>
                </td>
                <td>{{ list.cago_name }}</td>
                <td>{{ list.agency_name }}</td>
                <td>{{ list.port_name }}</td>
                <td>{{ list.remark }}</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>
    <nav aria-label="Page navigation example">
        <ul class="pagination justify-content-center">
            {% if block_start -1 >0 %}
            <li class="page-item"><a class="page-link" href="{{url_for('home.home',page=block_start  -1)}}">이전</a></li>
            {% endif %}

            {% for i in range(block_start, block_last +1) %}
                {% if i > last_page_num %}
                <li class="page-item"><a class="page-link pointer-events:none">{{i}}</a></li>
                {% else %}
                    {% if i == page %}
                    <li class="page-item active" aria-current="page">
                        <span class="page-link">{{i}}</span>
                    </li>
                    {% else %}
                    <li class="page-item"><a class="page-link pointer-events: none " href="{{url_for('home.home',page=i)}}">{{i}}</a>
                    </li>
                    {% endif %}
                {% endif %}
            {% endfor %}
            {% if block_last < last_page_num %} <li class="page-item"><a class="page-link"
                    href="{{url_for('home.home',page=block_last +1)}}">Next</a></li>
                {% endif %}
        </ul>
    </nav>
        {% endblock %}
</body>

</html>

home.html

{% extends "main.html" %}

<body>
    {% block contents %}
    <form action="{{url_for('home.mv_create')}}" method="POST">
        <p><input class="form-control form-control-lg" type="date" name="inport_date" placeholder="입항일"></p>
        <p><input class="form-control" type="text" type="text" name="mv_name" placeholder="본선명"></p>
        <p><input class="form-control" type="text" type="text" name="port_name"  placeholder="하역사"></p>
        <p><input class="form-control" type="text" type="text" name="cago_name"  placeholder="화물명"></p>
        <p><input class="form-control" type="text" type="text" name="agency_name"  placeholder="대리점"></p>
        <div class="form-floating"><textarea textarea class="form-control" placeholder="비  고" id="floatingTextarea2" style="height: 200px" name="remark"></textarea>
        <label for="floatingTextarea2">전달사항</label>    
        </div>
        <input type="submit" value="등록">
    </form>
    <hr>
    <br>
    <a href="{{url_for('home.home')}}"><button type="button" class="btn btn-primary"></button></a>
    {% endblock  %}
</body>


mv_create.html

{% extends "main.html" %}

<body>
    {% block contents %}
    <body>
        <a href="{{url_for('home.home')}}"><button type="button" class="btn btn-primary"></button></a>
        <h1>본선내역</h1>
            <table class="table" style="border: 8px blue;" >
                <tbody>
                    <tr>
                        <th>입항일</th>
                        <td>{{result.date}}</td>
                    </tr>
                    <tr>
                        <th>본선명</th>
                        <td>{{result.mv_name}}</td>
                    </tr>
                    <tr>
                        <th>하역사</th>
                        <td>{{result.port_name}}</td>
                    </tr>
                    <tr>
                        <th>화 종</th>
                        <td>{{result.cago_name}}</td>
                    </tr>
                    <tr>
                        <th>대리점</th>
                        <td>{{result.agency_name}}</td>
                    </tr>
                    <tr>
                        <th>비 고</th>
                        <td>{{result.remark}}</td>
                    </tr>
                </tbody>
               
            </table>
           
            <a href="{{url_for('home.update',idx=result.id)}}"><button type="button" class="btn btn-outline-danger">편집</button></a>
                   
    </body>
    {% endblock  %}
</body>

read.html

{% extends "main.html" %}

<body>
    {% block contents %}
    <h1>{{title}}</h1>
    <form action="{{url_for('home.update',idx=result.id)}}" method="POST">
        <p><input class="form-control form-control-lg" type="date" name="inport_date" placeholder="입항일"
                value="{{result.date}}"></p>
        <p><input class="form-control" type="text" type="text" name="mv_name" placeholder="본선명"
                value="{{result.mv_name}}"></p>
        <p><input class="form-control" type="text" type="text" name="port_name" placeholder="하역사"
                value="{{result.port_name}}"></p>
        <p><input class="form-control" type="text" type="text" name="cago_name" placeholder="화물명"
                value="{{result.cago_name}}"></p>
        <p><input class="form-control" type="text" type="text" name="agency_name" placeholder="대리점"
                value="{{result.agency_name}}"></p>
        <div class="form-floating"><textarea textarea class="form-control" placeholder="비  고" id="floatingTextarea2"
                style="height: 200px" name="remark">{{result.remark}}</textarea>
        </div>
        <input type="submit" class="btn btn-danger" value="수 정">
    </form>

    </table>
    <br>
    <hr>
    <div class="d-grid gap-2 d-md-flex justify-content-md-end">
        <a href="{{url_for('home.home')}}"><button class="btn btn-primary" type="button"
                class="btn btn-primary"></button></a>
        <form action="{{url_for('home.delete',idx=result.id)}}" method="POST"><input type="submit" class="btn btn-danger" value="삭제">
        </form>
    </div>

    {% endblock %}
</body>

update.html

{% extends "main.html" %}
{% block contents %}

<style>
    html,
    body,
    h1,
    h2,
    h3,
    div,
    span,
    a,
    button,
    table,
    tbody,
    thead,
    input {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    html {
        background-color: hsl(0, 0%, 0%);
    }

    html,
    body {
        min-height: 110%;
    }

    .clicked {
        background-color: rgb(59, 62, 147);
        /* border-radius: 20%; */
        color: rgb(232, 132, 37);
        display: flex;
        text-align: start;
        flex-direction: column;
        width: 150px;
    }

    .clicked>ul>span {
        text-align: center;
    }

    .btn btn-warning {
        margin: 0;
        padding: 0;
    }

    ol,
    ul {
        padding: 4px 4px 4px 4px;
        /* margin: auto; */
    }

    /* .btn btn-secondary btn-lg {
        zoom: 0.5;
        margin: 0;
        padding: 0;
    } */
    .wrap {
        /* background-color: chartreuse; */
        width: 1600px;
        height: 850px;
        margin: auto;
        border: 1px;
    }

    td>input {
        border: none;
    }

    th>input {
        border: none;
    }

    tr {
        cursor: pointer;
    }

    td>button {
        zoom: 0.65;
    }

    .total {

        height: 800px;

    }

    table {
        width: 1200px;
        table-layout: fixed;
    }

    .flex-row {
        display: flex;
        flex-direction: row;
        align-items: flex-start
            /* justify-content: center; */
    }

    .flex-col {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .list-group {
        background-color: rgb(13, 170, 233);
        color: white;
        width: 200px;
    }
    .list-group >ul{
        height: 700px;
    }
    .list-group > ul>li{
        height: 30px;
    }
    tr{
        width: 1000px;
    }  
    .add-form>td {
        background-color: rgb(173, 214, 243);
   
    }
    .clicked{
        background-color: azure;
        color: blue;
        width: 180px;
        height: 150px;
    }
</style>
<script>
    let idx;

    $(document).ready(() => {
        d_list();
        hideform()
    })
    function mv_click(id) {
        $(`#clicked> li`).removeClass('clicked')
        $(`#${id}`).addClass('clicked')
        $(`#add-from`).text(String(`${id}`))
        idx = String(id);
        d_list()
       
    }
    function list_click(list_id) {
        if (confirm("수정하시겠습니까?")) {
            $(`#${list_id}_add`).hide();
            $(`#${list_id}_mody`).show();
        }
    }
    function hideaddfrom(id) {
        $(`#${id}_add`).show();
        $(`#${id}_mody`).hide();
    }
    // 본선선택 필수 강제조항
    function addcotnet() {
        let id =$('input[name=mv_id_add]').val()
        let msn = $('input[name=msn_add]').val()
        let hauju = $('input[name=hauju_add]').val()
        let offer = $('input[name =offer_add]').val()
        let p_name = $('input[name=p_name_add]').val()
        let gangjung = $('input[name=gangjung_add]').val()
        let size = $('input[name=size_add]').val()
        let bundle = $('input[name=bundle_add]').val()
        let mt = $('input[name=mt_add]').val()
        let storage = $('input[name=storage_add]').val()
        let formData = new FormData()
        formData.append("mv_id_give", id)
        formData.append("msn_give", msn)
        formData.append("hauju_give", hauju)
        formData.append("offer_give", offer)
        formData.append("p_name_give", p_name)
        formData.append("gangjung_give", gangjung)
        formData.append("size_give", size)
        formData.append("bundle_give", bundle)
        formData.append("mt_give", mt)
        formData.append("storage_give", storage)

        fetch('/d_bar/post', { method: "POST", body: formData }).then(res => res.json()).then(data => {
            alert(data["msg"])
            window.location.reload()
        })
    }
    function showAddform(idx) {
        if (idx === undefined ){
            alert("본선을 선택하세요")}
        else{
            $('#add-form').show();
            // alert(idx)
            $('#mv_id').val(idx);
           
        }
    }
    function hideform() {
        $('#add-form').hide()
         
    }
    function d_list() {
        let data = idx;
        console.log(data)
        let url = `/d_bar/d_detail?data=${idx}`
        console.log(url)
        fetch(url).then(res => res.json()).then(data => {
            let rows = data['result'];
            $("#list").empty();
            rows.forEach((row) => {
                let id = row['_id']
                let msn = row['msn']
                let hauju = row['hauju']
                let p_name = row['p_name']
                let offer = row['offer']
                let gangjung = row['gangjung']
                let size = row['size']
                let bundle = row['bundle']
                let mt = row['mt']
                let storage = row['storage']
                let mv_id=row['mv_id']
                let temp_html = ` <tr id='${id}_add' onclick="list_click('${id}')">
                                        <td>${msn}</td>
                                        <td>${hauju}</td>
                                        <td>${p_name}</td>
                                        <td>${offer}</td>
                                        <td>${gangjung}</td>
                                        <td>${size}</td>
                                        <td>${bundle}</td>
                                        <td>${mt}</td>
                                        <td>${storage}</td>
                                    </tr>
                                   
                                    <tr id='${id}_mody'  style="display:none;">
                                        <td><input type="text" placeholder="msn" name="msn" value="${msn}"></td>
                                        <td><input type="text" placeholder="화주명" name="hauju" value="${hauju}"></td>
                                        <td><input type="text" placeholder="세부품명" value="d_bar" name="p_name" value='${p_name}'></td>
                                        <td><input type="text" placeholder="제강사" name="offer" value='${gangjung}'></td>
                                        <td><input type="text" placeholder="강 종" name="gangjung" value='${gangjung}'></td>
                                        <td><input type="text" placeholder="싸이즈" name="size" value='${size}'></td>
                                        <td><input type="text" placeholder="수 량" name="bundle" value="${bundle}"></td>
                                        <td><input type="text" placeholder="톤수" name="mt" value="${mt}"></td>
                                        <td><input type="text" placeholder="창고코드" name="storage" value='${storage}'>

                                        <button onclick="hideaddfrom('${id}')" class="btn btn-warning">취소</button>    
                                        <button onclick="modifycotnet('${id}')" class="btn btn-warning">수정</button>
                                        <button onclick="deletecotnet('${id}')" class="btn btn-warning">삭제</button>
                                        </td>
                                    </tr>
                                `
                $("#list").append(temp_html)
            })
            temp_html2=`<tr class="add-form" id="add-form" style="display:none; background-color: aqua;">
                            <td><input type="text" placeholder="MSN" name="msn_add"></td>
                            <td><input type="text" placeholder="화주명" name="hauju_add"></td>
                            <td><input type="text" placeholder="세부품명" value="d_bar" name="p_name_add"></td>
                            <td><input type="text" placeholder="제강사" name="offer_add"></td>
                            <td><input type="text" placeholder="강 종" name="gangjung_add"></td>
                            <td><input type="text" placeholder="싸이즈" name="size_add"></td>
                            <td><input type="text" placeholder="수 량" name="bundle_add"></td>
                            <td><input type="text" placeholder="톤수" name="mt_add"></td>
                            <td><input type="text" placeholder="창고코드" name="storage_add"></td>
                            <td><button onclick="addcotnet()" class="btn btn-warning " style="padding: 20px;">저장</button></td>
                        </tr>
                            <input id='mv_id' type="hidden" name="mv_id_add">`

                    $("#list").append(temp_html2)
        })
    }
    function modifycotnet(id) {
        let msn = $(`#${id}_mody>td>input[name=msn]`).val()
        let hauju = $(`#${id}_mody>td>input[name=hauju]`).val()
        let offer = $(`#${id}_mody>td>input[name =offer]`).val()
        let p_name = $(`#${id}_mody>td>input[name=p_name]`).val()
        let gangjung = $(`#${id}_mody>td>input[name=gangjung]`).val()
        let size = $(`#${id}_mody>td>input[name=size]`).val()
        let bundle = $(`#${id}_mody>td>input[name=bundle]`).val()
        let mt = $(`#${id}_mody>td>input[name=mt]`).val()
        let storage = $(`#${id}_mody>td>input[name=storage]`).val()
        let formData = new FormData()
        // let mv_id = idx
        // console.log(mv_id)
        formData.append("id_give", id)
        formData.append("mv_id_give" ,idx)
        formData.append("msn_give", msn)
        formData.append("hauju_give", hauju)
        formData.append("offer_give", offer)
        formData.append("p_name_give", p_name)
        formData.append("gangjung_give", gangjung)
        formData.append("size_give", size)
        formData.append("bundle_give", bundle)
        formData.append("mt_give", mt)
        formData.append("storage_give", storage)
        fetch('/d_bar/modify', { method: "POST", body: formData }).then(res => res.json()).then(data => {
            alert(data["msg"])
            window.location.reload()
        })
    }
    function deletecotnet(id) {
        if (confirm("정말삭제하나요?")) {
            let formData = new FormData()
            formData.append("id_give", id)
            fetch('/d_bar/delete', { method: "POST", body: formData }).then(res => res.json()).then(data => {
                alert(data["msg"])
                window.location.reload()
            })
        }
    }
</script>
<div class="flex-row">
    <div class="list-group">
        <ul id="clicked">
            {% for d_list in d_lists %}
            <li id="{{d_list._id}}" class="list-group" onclick="mv_click(`${id}` )">
                {{d_list.date}} {{d_list.mv_name}}
            </li>
            <hr />
            {% endfor %}
        </ul>
    </div>
    <div class="wrap">
        <table class="table" style="border: 8px blue;">
            <thead class="table-primary">
                <tr>
                    <!-- <th>모선명</th> -->
                    <th scope="col">MSN</th>
                    <th scope="col">화주명</th>
                    <th scope="col">품명</th>
                    <th scope="col">제강사</th>
                    <th scope="col">강종</th>
                    <th scope="col">싸이즈</th>
                    <th scope="col">총수량(B/D)</th>
                    <th scope="col">총중량(M/T)</th>
                    <th scope="col">창고코드</th>

                </tr>
            </thead>
            <tbody class="table table-striped table" id=list class="add-form">
                <!-- <tr class="add-form" id="add-form" style="background-color: aqua;">
                    <td><input type="text" placeholder="MSN" name="msn"></td>
                    <td><input type="text" placeholder="화주명" name="hauju"></td>
                    <td><input type="text" placeholder="세부품명" value="d_bar" name="p_name"></td>
                    <td><input type="text" placeholder="제강사" name="offer"></td>
                    <td><input type="text" placeholder="강 종" name="gangjung"></td>
                    <td><input type="text" placeholder="싸이즈" name="size"></td>
                    <td><input type="text" placeholder="수 량" name="bundle"></td>
                    <td><input type="text" placeholder="톤수" name="mt"></td>
                    <td><input type="text" placeholder="창고코드" name="storage"></td>
                    <td><button onclick="addcotnet()" class="btn btn-warning " style="padding: 20px;">저장</button></td>
                </tr> -->
            </tbody>
        </table>
        <div class="add-btn">
            <td><button onclick="showAddform(idx)" class="btn btn-primary btn-lg">추가</button></td>
            <td><button onclick="hideform()" class="btn btn-secondary btn-lg">취소</button></td>
        </div>
    </div>
    {% endblock %}
</div>


d_list.html