You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

69 lines
2.0 KiB

import os
from flask import Flask, url_for
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_user
from flask_migrate import Migrate
from sqlalchemy import MetaData
convention = {
"ix": 'ix_%(column_0_label)s',
"uq": "uq_%(table_name)s_%(column_0_name)s",
"ck": "ck_%(table_name)s_%(constraint_name)s",
"fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
"pk": "pk_%(table_name)s"
}
# init SQLAlchemy so we can use it later in our models
metadata = MetaData(naming_convention=convention)
db = SQLAlchemy(metadata=metadata)
migrate = Migrate(render_as_batch=True)
from repostajes import paginas, auth
def create_app():
app = Flask(__name__)
app.config.from_prefixed_env()
with open('instance/secret.txt') as f:
app.config['SECRET_KEY'] = f.read().strip()
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///repostajes.db'
app.config['UPLOAD_FOLDER'] = os.path.join(app.instance_path, 'uploads')
app.config['TEMPLATES_AUTO_RELOAD'] = True
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 16 MB máximo
from .models import db
db.init_app(app)
migrate.init_app(app, db)
login_manager = LoginManager()
login_manager.login_view = 'auth.login'
login_manager.init_app(app)
from .models import User
@login_manager.user_loader
def load_user(user_id):
# since the user_id is just the primary key of our user table, use it in the query for the user
return User.query.get(int(user_id))
from . import models
with app.app_context():
db.create_all()
# basededatos.init_app(app)
app.register_blueprint(paginas.bp)
app.register_blueprint(auth.bp)
print(f"Current Environment: {os.getenv('ENVIRONMENT')}")
print(f"Using Database: {app.config.get('SQLALCHEMY_DATABASE_URI')}")
print(f"Directorio de uploads: {app.config.get('UPLOAD_FOLDER')}")
print(f"instance: {app.instance_path}")
return app