NodeFactory's picture
Update app.py
5b368e0 verified
Raw
History Blame Contribute Delete
1.6 kB
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
import os
# Inicializar aplicação Flask
app = Flask(__name__)
# Configuração do banco de dados
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///hypercycle_monitor.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY', 'development_key')
# Inicializar banco de dados
db = SQLAlchemy(app)
# Modelos
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(100), unique=True, nullable=False)
password_hash = db.Column(db.String(128), nullable=False)
telegram_id = db.Column(db.String(50), unique=True, nullable=True)
is_active = db.Column(db.Boolean, default=True)
is_admin = db.Column(db.Boolean, default=False)
class Factory(db.Model):
__tablename__ = 'factories'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
hypercycle_id = db.Column(db.String(100), unique=True, nullable=False)
description = db.Column(db.Text, nullable=True)
current_status = db.Column(db.String(20), default='unknown')
# Rota principal
@app.route('/')
def index():
return render_template('index.html', title='Hypercycle Monitor')
# Criar tabelas do banco de dados
with app.app_context():
db.create_all()
# Inicializar aplicação
if __name__ == '__main__':
# Porta 7860 é a padrão do Hugging Face Spaces
app.run(host='0.0.0.0', port=7860)