Spaces:
Sleeping
Sleeping
| from flask import Flask | |
| from flask_sqlalchemy import SQLAlchemy | |
| from dotenv import load_dotenv | |
| import os | |
| db = SQLAlchemy() | |
| def create_app(): | |
| load_dotenv() | |
| app = Flask(__name__) | |
| app.config['SECRET_KEY'] = os.getenv('FLASK_SECRET_KEY', 'dev-secret-key-change-in-production') | |
| app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///participatory_planner.db' | |
| app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False | |
| db.init_app(app) | |
| # Import models | |
| from app.models import models | |
| # Import and register blueprints | |
| from app.routes import auth, submissions, admin | |
| app.register_blueprint(auth.bp) | |
| app.register_blueprint(submissions.bp) | |
| app.register_blueprint(admin.bp) | |
| # Create tables | |
| with app.app_context(): | |
| db.create_all() | |
| # Initialize with admin token if not exists | |
| from app.models.models import Token | |
| if not Token.query.filter_by(token='ADMIN123').first(): | |
| admin_token = Token( | |
| token='ADMIN123', | |
| type='admin', | |
| name='Administrator' | |
| ) | |
| db.session.add(admin_token) | |
| db.session.commit() | |
| return app | |