mirror of
https://github.com/EDeev/web-dev.git
synced 2026-06-15 19:11:12 +03:00
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from flask import Flask, render_template, send_from_directory
|
|
from flask_migrate import Migrate
|
|
from sqlalchemy.exc import SQLAlchemyError
|
|
from models import db, Category, Image
|
|
from auth import bp as auth_bp, init_login_manager
|
|
from courses import bp as courses_bp
|
|
|
|
app = Flask(__name__)
|
|
application = app
|
|
|
|
app.config.from_pyfile('config.py')
|
|
|
|
db.init_app(app)
|
|
migrate = Migrate(app, db)
|
|
|
|
init_login_manager(app)
|
|
|
|
@app.errorhandler(SQLAlchemyError)
|
|
def handle_sqlalchemy_error(err):
|
|
error_msg = ('Возникла ошибка при подключении к базе данных. '
|
|
'Повторите попытку позже.')
|
|
return f'{error_msg} (Подробнее: {err})', 500
|
|
|
|
app.register_blueprint(auth_bp)
|
|
app.register_blueprint(courses_bp)
|
|
|
|
@app.route('/')
|
|
def index():
|
|
categories = db.session.execute(db.select(Category)).scalars()
|
|
return render_template(
|
|
'index.html',
|
|
categories=categories,
|
|
)
|
|
|
|
@app.route('/images/<image_id>')
|
|
def image(image_id):
|
|
img = db.get_or_404(Image, image_id)
|
|
return send_from_directory(app.config['UPLOAD_FOLDER'],
|
|
img.storage_filename)
|