๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

Flask ์‹œ์ž‘ํ•ด๋ณด๊ธฐ _ MongoDB ์—ฐ๊ฒฐํ•˜๊ธฐ (2) ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฐฑ์—”๋“œ(Back-End)/Node js

Flask ์‹œ์ž‘ํ•ด๋ณด๊ธฐ _ MongoDB ์—ฐ๊ฒฐํ•˜๊ธฐ (2)

์ง•์ง•์•ŒํŒŒ์นด 2022. 10. 31. 16:10
728x90
๋ฐ˜์‘ํ˜•

221031 ์ž‘์„ฑ

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” popawaw ๋‹˜์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค :-)>

https://popawaw.tistory.com/4?category=893162 

 

flask 2_๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™

์ €๋Š” mongodb ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•ด pip install flask_pymongo ๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค ๊ทธ๋ฆฌ๊ณ  import๋ฅผ ํ•ด์ค€๋’ค app.config["MONGO_URI"] = "mongodb://localhost:27017/myflask" ๋งˆ์ง€๋ง‰ //myweb ์€ database ์ด๋ฆ„์„ ๋œปํ•ฉ๋‹ˆ๋‹ค c..

popawaw.tistory.com

 

 

๐Ÿ’ MongoDB ๋‹ค์šด

pip install flask_pymongo

 

๐Ÿ’ MongoDB ์—ฐ๋™

  • write.html
<!DOCTYPE html>
<html lang = "kr">
<head>
    <meta charset = "utf-8">
    <title>๊ฐ€๋‹ˆ ๊ฒŒ์‹œ๊ธ€</title>
</head>
<body>
    <table>
        <!-- ๋ฐ์ดํ„ฐ ์ „์†ก ์œ„ํ•ด form์œผ๋กœ ๋ฌถ๊ธฐ  -->
        <form name = "fomr" method = "POST" action = "/write"> 
        <tr>
            <td>์ž‘์„ฑ์ž</td>
            <td><input type = "text" name = "name"></td>
        </tr>
        <tr>
            <td>์ œ๋ชฉ</td>
            <td><input type = "text" name = "name"></td>
        </tr>
        <tr>
            <td>๋‚ด์šฉ</td>
            <td><textarea name = "contents"></textarea></td>
        </tr>
        <tr>
            <td colspan = "2"><input type = "submit"></td>
        </tr>
        </form>
    </table>
</body>
</html>
  • app.py
from flask import Flask
from flask import request
from flask import render_template

# MongoDB ์—ฐ๊ฒฐ
from flask_pymongo import PyMongo
from pymongo import MongoClient

app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/myflask"    # ํ”„๋กœํ† ์ฝœ๋ช… // ์ฃผ์†Œ:ํฌํŠธ/ DB name
mongo = PyMongo(app)

# ์ฃผ์†Œ ์„ค์ •
@app.route("/write", methods = ["GET", "POST"])

def board_write() :
    # method๊ฐ€ POST ์ธ์ง€ GET์ธ์ง€ ๊ตฌ๋ถ„
    if request.method == "POST" :
        # Template์„ write.html๋กœ ๋ณด์—ฌ์ค€๋‹ค
        name = request.form.get("name")
        title = request.form.get("title")
        contents = request.form.get("contents")

        # board ๋ผ๋Š” ์ปฌ๋ ‰์…˜์— ์ ‘๊ทผ ์žˆ์œผ๋ฉด ์ ‘๊ทผ, ์—†์œผ๋ฉด ์ƒ์„ฑ
        board = mongo.db.board
        


        # board = mongo.db.board
        post = {
            "name" : name,
            "title" : title,
            "contents" : contents
        }

        board.insert_one(post)

    else :
        return render_template("write.html")

if __name__ == "__main__" :
    app.run(host = "0.0.0.0", debug = True, port = 8000)

 

๊ทผ๋ฐ ๊ณ„์† ์—๋Ÿฌ๋‚œ๋‹น 

๊ณ„์™ ์‹คํŒจํ–ˆ๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ ์›ฌ ๋‘๊ฐœ๊ฐ€ ๋“ค์–ด์™€์žˆ์Œ. ๋‹นํ™ฉ

๋จธ์ง•

 

 

โž• ์•„๋งˆ MongoClient๋กœ ๋ฐ”๊ฟ”์„œ ํ•ด์„œ ๊ทธ๋Ÿฐ๊ฐ€๋ด„...!!! ์–˜๋„ ์˜ค๋ฅ˜ ๋œจ๋Š”๋ฐ db ๋“ค์–ด๊ฐ.ใ…‹.ใ…‹.

from flask import Flask
from flask import request
from flask import render_template

# MongoDB ์—ฐ๊ฒฐ
from flask_pymongo import PyMongo
from pymongo import MongoClient

app = Flask(__name__)
# app.config["MONGO_URI"] = "mongodb://localhost:27017/myflask"    # ํ”„๋กœํ† ์ฝœ๋ช… // ์ฃผ์†Œ:ํฌํŠธ/ DB name

client = MongoClient("mongodb+srv://gani:๋น„๋ฒˆ๋น„๋ฒˆ@cluster0.h7jyl5v.mongodb.net/?retryWrites=true&w=majority")
# mongo = PyMongo(app)

# ์ฃผ์†Œ ์„ค์ •
@app.route("/write", methods = ["GET", "POST"])
db = client.myflask

def board_write() :
    # method๊ฐ€ POST ์ธ์ง€ GET์ธ์ง€ ๊ตฌ๋ถ„
    if request.method == "POST" :
        # Template์„ write.html๋กœ ๋ณด์—ฌ์ค€๋‹ค
        name = request.form.get("name")
        title = request.form.get("title")
        contents = request.form.get("contents")

        # board ๋ผ๋Š” ์ปฌ๋ ‰์…˜์— ์ ‘๊ทผ ์žˆ์œผ๋ฉด ์ ‘๊ทผ, ์—†์œผ๋ฉด ์ƒ์„ฑ
        # board = mongo.db.board

        # board = mongo.db.board
        post = {
            "name" : name,
            "title" : title,
            "contents" : contents
        }

        db.myflask.insert_one(post)

    else :
        return render_template("write.html")

if __name__ == "__main__" :
    app.run(host = "0.0.0.0", debug = True, port = 8000)

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•
Comments