65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
from flask_sqlalchemy import SQLAlchemy
|
|
from datetime import datetime
|
|
|
|
db = SQLAlchemy()
|
|
|
|
|
|
class User(db.Model):
|
|
__tablename__ = 'users'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
username = db.Column(db.String, unique=True, nullable=False)
|
|
password = db.Column(db.String, nullable=False)
|
|
|
|
def __init__(self, username=None, password=None):
|
|
self.username = username
|
|
self.password = password
|
|
|
|
def __repr__(self):
|
|
return f'<User {self.username}>'
|
|
|
|
|
|
class Message(db.Model):
|
|
__tablename__ = 'messages'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
name = db.Column(db.String, nullable=False)
|
|
email = db.Column(db.String, nullable=False)
|
|
message = db.Column(db.Text, nullable=False)
|
|
sended = db.Column(db.DateTime, default=datetime.utcnow())
|
|
|
|
def __init__(self, name=None, email=None, message=None):
|
|
self.name = name
|
|
self.email = email
|
|
self.message = message
|
|
|
|
def __repr__(self):
|
|
return f'<Message from:{self.name} message:{self.message}>'
|
|
|
|
|
|
class File(db.Model):
|
|
__tablename__ = 'files'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
filename = db.Column(db.String, nullable=False)
|
|
private = db.Column(db.Integer, nullable=False)
|
|
category_id = db.Column(db.Integer, db.ForeignKey('categories.id'), nullable=False)
|
|
|
|
def __init__(self, filename=None, private=None, category_id=None):
|
|
self.filename = filename
|
|
self.private = private
|
|
self.category_id = category_id
|
|
|
|
def __repr__(self):
|
|
return f'<File name:{self.filename}>'
|
|
|
|
|
|
class Category(db.Model):
|
|
__tablename__ = 'categories'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
name = db.Column(db.String, nullable=False)
|
|
files = db.relationship('File', backref='category', lazy=True)
|
|
|
|
def __init__(self, name=None):
|
|
self.name = name
|
|
|
|
def __repr__(self):
|
|
return f'<Category name:{self.name}>'
|