Spaces:
Runtime error
Runtime error
File size: 2,044 Bytes
5883a42 8b43096 5883a42 8b43096 5883a42 8b43096 5883a42 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# models.py
# db๊ด๋ จํ ๋ชจ๋ธ ์ฝ๋
# User, Diary ๋ชจ๋ธ์ ์
from . import db
from werkzeug.security import generate_password_hash, check_password_hash # ๋น๋ฐ๋ฒํธ ํด์ฑ(์ํธํ, *์ฒ๋ฆฌํด์ค)
import uuid
class User(db.Model):
id = db.Column(db.String(36), primary_key=True, default =lambda :str(uuid.uuid4())) # UUID ํ์์ ๊ณ ์ ID, ์ ์ ๋ ๋ฌธ์์ด๋ก ๋ฃ์์ ์๋ค.
username = db.Column(db.String(80), unique=True, nullable=False) # ์ฌ์ฉ์์ ์ด๋ฆ์ ํฌ๊ทํ๊ณ , ๊ณต๋ฐฑ์ ์์
password_hash = db.Column(db.String(128), nullable=False)
# User๊ฐ ์ญ์ ๋๋ฉด, ๊ด๋ จ๋ ๋ชจ๋ Diary๋ ํจ๊ป ์ญ์ ๋๋๋ก cascade ์ต์
์ถ๊ฐ
diaries = db.relationship('Diary', backref='author', lazy=True, cascade="all, delete-orphan")
# ๋น๋ฐ๋ฒํธ๋ฅผ ํด์ฑํ์ฌ ์ ์ฅ
def set_password(self, password):
self.password_hash = generate_password_hash(password)
# ํด์๋ ๋น๋ฐ๋ฒํธ์ ์
๋ ฅ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๋น๊ต
def check_password(self, password):
return check_password_hash(self.password_hash, password)
# ์ ์ ํธ์ถ๋ช
ํ์ธ
def __repr__(self):
return f"<User id={self.id} username='{self.username}'>"
class Diary(db.Model):
id = db.Column(db.String(36), primary_key=True, default =lambda :str(uuid.uuid4())) # UUID ํ์์ ๊ณ ์ ID
user_id = db.Column(db.String(36), db.ForeignKey('user.id'), nullable=False) # ์์ฑ์ ID (User ๋ชจ๋ธ๊ณผ ์ฐ๊ด)
content = db.Column(db.Text, nullable=False) # ์ผ๊ธฐ ๋ด์ฉ
emotion = db.Column(db.String(20), nullable=False) # ๊ฐ์ ๋ผ๋ฒจ
timestamp = db.Column(db.DateTime, server_default=db.func.now()) # ์์ฑ ์๊ฐ (๊ธฐ๋ณธ๊ฐ: ํ์ฌ ์๊ฐ)
user = db.relationship('User', backref=db.backref('diaries', lazy=True)) # User ๋ชจ๋ธ๊ณผ์ ๊ด๊ณ ์ค์
|