try path sql
Browse files- create_app.py +20 -14
- database.py +1 -2
create_app.py
CHANGED
|
@@ -49,32 +49,38 @@ def load_models():
|
|
| 49 |
MODELS_LOADED = True
|
| 50 |
print("LOAD ENDED", flush=True)
|
| 51 |
|
|
|
|
| 52 |
def create_app():
|
| 53 |
set_seed(42)
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
db.init_app(app)
|
| 59 |
login_manager.init_app(app)
|
| 60 |
login_manager.login_view = 'auth.login'
|
| 61 |
-
@login_manager.user_loader
|
| 62 |
-
def load_user(user_id):
|
| 63 |
-
return User.query.get(int(user_id))
|
| 64 |
|
|
|
|
| 65 |
with app.app_context():
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
from views import auth_bp, dashboard_bp, infer_bp, about_bp, error_bp
|
| 67 |
app.register_blueprint(auth_bp)
|
| 68 |
app.register_blueprint(dashboard_bp)
|
| 69 |
app.register_blueprint(infer_bp)
|
| 70 |
app.register_blueprint(about_bp)
|
| 71 |
app.register_blueprint(error_bp)
|
| 72 |
-
@app.errorhandler(Exception)
|
| 73 |
-
def handle_all_exceptions(e):
|
| 74 |
-
code = getattr(e, 'code', 500)
|
| 75 |
-
error_message = str(e) if hasattr(e, 'description') else "Something went wrong."
|
| 76 |
-
return render_template('error.html', code=code, error_message=error_message), code
|
| 77 |
-
from database import User, History
|
| 78 |
-
db.create_all()
|
| 79 |
|
| 80 |
return app
|
|
|
|
| 49 |
MODELS_LOADED = True
|
| 50 |
print("LOAD ENDED", flush=True)
|
| 51 |
|
| 52 |
+
|
| 53 |
def create_app():
|
| 54 |
set_seed(42)
|
| 55 |
+
app = Flask(__name__, instance_relative_config=True)
|
| 56 |
+
|
| 57 |
+
# Configure database
|
| 58 |
+
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join('/instance', 'users.db')
|
| 59 |
+
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
| 60 |
+
app.config['SECRET_KEY'] = 'your-very-secret-key-here' # Must be set!
|
| 61 |
+
|
| 62 |
+
# Ensure instance folder exists
|
| 63 |
+
try:
|
| 64 |
+
os.makedirs(app.instance_path)
|
| 65 |
+
except OSError:
|
| 66 |
+
pass
|
| 67 |
+
|
| 68 |
+
# Initialize extensions
|
| 69 |
db.init_app(app)
|
| 70 |
login_manager.init_app(app)
|
| 71 |
login_manager.login_view = 'auth.login'
|
|
|
|
|
|
|
|
|
|
| 72 |
|
| 73 |
+
# Load models (after db initialization)
|
| 74 |
with app.app_context():
|
| 75 |
+
load_models()
|
| 76 |
+
db.create_all() # Create tables if they don't exist
|
| 77 |
+
|
| 78 |
+
# Register blueprints
|
| 79 |
from views import auth_bp, dashboard_bp, infer_bp, about_bp, error_bp
|
| 80 |
app.register_blueprint(auth_bp)
|
| 81 |
app.register_blueprint(dashboard_bp)
|
| 82 |
app.register_blueprint(infer_bp)
|
| 83 |
app.register_blueprint(about_bp)
|
| 84 |
app.register_blueprint(error_bp)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 85 |
|
| 86 |
return app
|
database.py
CHANGED
|
@@ -7,14 +7,13 @@ class User(UserMixin, db.Model):
|
|
| 7 |
id = db.Column(db.Integer, primary_key=True)
|
| 8 |
email = db.Column(db.String(100), unique=True, nullable=False)
|
| 9 |
nickname = db.Column(db.String(100), unique=True, nullable=False)
|
| 10 |
-
password_hash = db.Column(db.String(
|
| 11 |
|
| 12 |
def set_password(self, password):
|
| 13 |
self.password_hash = generate_password_hash(password)
|
| 14 |
|
| 15 |
def check_password(self, password):
|
| 16 |
return check_password_hash(self.password_hash, password)
|
| 17 |
-
|
| 18 |
class History(db.Model):
|
| 19 |
id = db.Column(db.Integer, primary_key=True)
|
| 20 |
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
|
|
|
|
| 7 |
id = db.Column(db.Integer, primary_key=True)
|
| 8 |
email = db.Column(db.String(100), unique=True, nullable=False)
|
| 9 |
nickname = db.Column(db.String(100), unique=True, nullable=False)
|
| 10 |
+
password_hash = db.Column(db.String(128), nullable=False)
|
| 11 |
|
| 12 |
def set_password(self, password):
|
| 13 |
self.password_hash = generate_password_hash(password)
|
| 14 |
|
| 15 |
def check_password(self, password):
|
| 16 |
return check_password_hash(self.password_hash, password)
|
|
|
|
| 17 |
class History(db.Model):
|
| 18 |
id = db.Column(db.Integer, primary_key=True)
|
| 19 |
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
|