상세 컨텐츠

본문 제목

PYMYSQL 연습 +JQUERY

pymysql

by bumychoi 2025. 5. 10. 03:10

본문

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
        integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
    <title>todo</title>
    <style>
        html,
        body,
        h1,
        h2,
        h3,
        div,
        apan,
        a,
        button,
        input {
            margin: 0;
            padding: 0;
            box-sizing: border-box;

        }

        body {
            background-color: rgb(219, 235, 230);
        }

        .wrap {
            background-color: beige;
            width: 350px;
            height: 700px;
            margin: auto;
        }

        .flex-row {
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: center;

        }

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

        .wrap-todo {
            padding: 16px;
        }

        h1 {
            font-size: 24px;
            margin: 16px;
        }

        .todo {
            padding: 16px;
            background-color: rgb(227, 216, 200);
            border-radius: 8px;
            width: 300px;

            margin-bottom: 8px;
        }

        .todo-content {
            margin-left: 8px;
            margin-right: auto;
        }

        .todo>input {
            zoom: 1.5;
            background-color: transparent;
        }

        .add-form {
            padding: 16px;
            background-color: rgb(242, 229, 207);
            border-radius: 8px;
            width: 300px;
            border: 1px solid red;
            display: none;
        }

        .add-form-btns {
            margin-left: auto;

        }

        .add-form-btns>button {
            background-color: transparent;
            margin: 0px 4px;
            border: none;
            cursor: pointer;
            font-weight: 600;
            font-size: 12px;
        }

        .add-form>input {
            background-color: transparent;
            border: none;
            font-size: 16px;
            width: 200px;

        }

        .add-form>input:focus-visible {
            outline: none;

        }

        .add-btn {
            padding: 16px;
            background-color: transparent;
            border-radius: 8px;
            width: 300px;
            border: 1px dashed rgb(190, 190, 233);
            cursor: pointer;

        }

        .add-btn>span {
            margin-bottom: 2px;
        }

        .add-btn>button {
            margin-left: 8px;
            margin-right: auto;
            background-color: transparent;
            border: none;
            cursor: pointer;
        }
    </style>
    <script>
        $(document).ready(() => {
            listContent()
        })
        function showAddForm() {
            $("#add-form").css('display', 'flex');
            $("#add-btn").hide();
        }
        function hideAddForm() {
            if (confirm("정말취소합니까?")) {
                $("#add-form").hide();
                $("#add-btn").css('display', 'flex');
            }

        }
        function addContent() {
            let content = $("#content").val();

            let formData = new FormData()
            formData.append("content_give", content)

            fetch('/post', { method: "POST", body: formData }).then(res => res.json()).then(data => {
                alert(data["msg"])
                window.location.reload()
            })
        }
        function listContent() {
            fetch("/list").then(res => res.json()).then(data => {
                $("#todos").empty();
                let rows = data['result'];
                rows.forEach((row) => {
                    console.log(row)
                    let content = row['content']
                    let temp_html = `<div class="todo flex-row">
                                        <input type="checkbox">
                                        <span class="todo-content">${content}</span>
                                    </div>`
                    $("#todos").append(temp_html);
                })
            })
        }
        function test() {
            if (confirm("정말취소합니까?")) {
                listContent();
            }
        }
    </script>
</head>

<body>
    <div class="wrap">
        <div class="wrap-todo flex-col">
            <h1>2023-02-25 작업자</h1>
            <div id="todos" class="todos flex-col">
                <div class="todo flex-row">
                    <input type="checkbox">
                    <span class="todo-content">출고</span>
                </div>
                <!-- <div class="todo flex-row">
                <input type="checkbox">
                <span >출고</span>
            </div> -->
            </div>
            <div id="add-form" class="add-form flex-row">
                <input id="content" type="text">
                <div class="add-form-btns flex-row">
                    <button onclick="addContent()">추가</button>
                    <button onclick="hideAddForm()">취소</button>
                </div>
            </div>
            <div id="add-btn" onclick="showAddForm()" class="add-btn flex-row">
                <span>+</span>
                <button>추가하기</button>
            </div>
        </div>
    </div>
</body>

</html>
 

 

 

import pymysql
from flask import Flask,render_template,request,jsonify

app = Flask(__name__)

conn=pymysql.connect(
    host="127.0.0.1",
    user="root",
    passwd="cb02077075",
    db="dolist",
    charset="utf8",
    autocommit=True
)


cur =  conn.cursor()

# 입력하기
# cur.execute(f"CREATE TABLE userTable(\
#             number INT PRIMARY KEY AUTO_INCREMENT,\
#             content char(15))")
@app.route("/")
def home():
    return render_template("index.html")

@app.route("/list",methods=["GET"])
def list_todo():
    cur.execute("SELECT * FROM userTable")
    contents = cur.fetchall()
    result = [{"number": row[0], "content": row[1]} for row in contents]
    return jsonify({"result":result})

@app.route("/post",methods=["POST"])
def post_todo():
    content = request.form["content_give"]
    print(content)
    sql=("INSERT INTO userTable (content) VALUES(%s)")
    cur.execute(sql,(
        content
    ))

    return jsonify({"msg":"등록완료"})

if __name__=="__main__":
    app.run(debug=True,port=5000)

'pymysql' 카테고리의 다른 글

to-list 체크 추가  (0) 2025.05.18
파이썬, 플라스크, mysql, jqury crud  (0) 2025.05.14
페이지네이션 추가  (0) 2025.05.08
페이지네이션 추가  (0) 2025.05.06
flask+jinja2 list 만들기  (0) 2025.05.06

관련글 더보기