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

Flask ์‹œ์ž‘ํ•ด๋ณด๊ธฐ _ MongoDB id ๊ฐ€์ ธ์˜ค๊ธฐ OR template filter (3) ๋ณธ๋ฌธ

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

Flask ์‹œ์ž‘ํ•ด๋ณด๊ธฐ _ MongoDB id ๊ฐ€์ ธ์˜ค๊ธฐ OR template filter (3)

์ง•์ง•์•ŒํŒŒ์นด 2022. 11. 2. 09:51
728x90
๋ฐ˜์‘ํ˜•

221031 ์ž‘์„ฑ

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

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

 

flask 3_๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—์„œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ

๊ฒŒ์‹œํŒ ์—์„œ ๊ธ€์ž‘์„ฑ์œผ๋กœ ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ ์—๋Œ€ํ•œ id ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ inserted_id ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค id ๊ฐ’์ด ์ž˜ ์ถœ๋ ฅ๋˜๋Š”๊ฑธ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

popawaw.tistory.com

 

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

 

flask 4_template filter ์‚ฌ์šฉํ•˜๊ธฐ

ํ˜„์žฌ ์‹œ๊ฐ„ ๊ฐ’์ด timestamp ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๊ธฐ์—” ๋ถˆํŽธ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์„œ ๋ณด์—ฌ์ฃผ๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. html ์—์„œ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ templat_filter ๋ผ๋Š”๊ฑธ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค ๊ทธ๋ฆฌ

popawaw.tistory.com

 

 

 

๐Ÿ’ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ id๊ฐ’ 

  • app.py
    • ๊ธ€์ž‘์„ฑ์œผ๋กœ ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ id๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด inserted_id ์‚ฌ์šฉ

 

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:hilee5868@cluster0.h7jyl5v.mongodb.net/?retryWrites=true&w=majority")
# 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

        db = client.myflask
        
        post = {
            "name" : name,
            "title" : title,
            "contents" : contents
        }

        data = db.myflask.insert_one(post)
        # ๊ธ€์ž‘์„ฑ์œผ๋กœ ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ id๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด inserted_id ์‚ฌ์šฉ
        return str(data.inserted_id)

    else :
        return render_template("write.html")

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

ID ๊ฐ’ ์งœ๋ž‘

 

๐Ÿ’ Template filter

  • app.py
    • ์•ˆ๋จ
    • ์„ค๋ช…๋„ ๋ถ€์กฑํ•ด์„œ ๋ชปํ•˜ใ…”ใ„ฑใ…†์Œใ…
# 2) template filter ์‚ฌ์šฉ
from flask import Flask
from flask import request
from flask import render_template

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

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

client = MongoClient("mongodb+srv://gani:hilee5868@cluster0.h7jyl5v.mongodb.net/?retryWrites=true&w=majority")
# 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")
        
        # timestape๋Š” ๋ฐ€๋ฆฌ์„ธ์ปจ๋“œ๋กœ ๊ฐ’ ๋ฐ˜ํ™˜. ์ดˆ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด 1000 ๊ณฑํ•˜๊ธฐ
        # ์†Œ์ˆ˜์ ์ด ๋‚˜์˜ค๋Š” ๊ฑธ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด round ๋ฐ˜ํ™˜
        current_utc_time = round(datetime.utcnow().timestamp() * 1000)

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

        post = {
            "name" : name,
            "title" : title,
            "contents" : contents,
            "pubdate" : current_utc_time,
            "view" : 0
        }

        data = db.myflask.insert_one(post)
        # ๊ธ€์ž‘์„ฑ์œผ๋กœ ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ id๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด inserted_id ์‚ฌ์šฉ
        
        return str(data.inserted_id)

    else :
        return render_template("write.html")


# html ์—์„œ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด templat_filter ์‚ฌ์šฉ
@app.template_filter("format_time")
def format_time(value) :
    if value is None :
        return ""

    # ํด๋ผ์ด์–ธํŠธ ํ˜„์žฌ ์‹œ๊ฐ„
    now_timestamp = time.time()
    offset = datetime.fromtimestamp(now_timestamp) - datetime.utcfromtimestamp(now_timestamp)
    value = datetime.fromtimestamp((int(value) / 1000) + offset)
    return value.strftime("%Y-%m-%d %H:%M:%S")

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

 

 

 

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