Files
flask-files/files/models.py
Daniel Cortes 02d27c3868 Mejorado el deploy por docker
Ahora se usan archivos .env para la configuracion en vez del archivo en
la instancia

Tambien se paso a usar docker-compose para tambien crear la base de
datos

Se tienen volumenes separados para la carpeta de uploads y para la base
de datos

Cambie los comandos para que sea solo uno poble la base de datos con
todo lo que implica

Se paso a mysql tambien
2019-03-14 00:40:42 -03:00

92 lines
2.5 KiB
Python

from datetime import datetime
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(255), unique=True, nullable=False)
password = db.Column(db.String(255), 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(255), nullable=False)
email = db.Column(db.String(255), 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(255), nullable=False)
private = db.Column(db.Integer, nullable=False)
category_id = db.Column(
db.Integer,
db.ForeignKey('categories.id'),
nullable=False)
file_type_id = db.Column(
db.Integer,
db.ForeignKey('file_types.id'),
nullable=False)
def __init__(
self,
filename=None,
private=None,
category_id=None,
file_type_id=None):
self.filename = filename
self.private = private
self.category_id = category_id
self.file_type_id = file_type_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(255), 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}>'
class FileType(db.Model):
__tablename__ = 'file_types'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255), nullable=False)
files = db.relationship('File', backref='type', lazy=True)
def __init__(self, name=None):
self.name = name
def __repr__(self):
return f'<FileType name:{self.name}>'