Fix Flask-WTF CSRF import error for Flask-WTF 1.2.1 compatibility

- Initialize CSRFProtect in app/__init__.py
- Update import in app/upload/routes.py from flask_wtf.csrf to flask_wtf
- Maintain existing @csrf.exempt decorators
parent e5652062
...@@ -4,6 +4,7 @@ from flask import Flask ...@@ -4,6 +4,7 @@ from flask import Flask
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager from flask_login import LoginManager
from flask_jwt_extended import JWTManager from flask_jwt_extended import JWTManager
from flask_wtf import CSRFProtect
from config import config from config import config
import colorlog import colorlog
from werkzeug.middleware.proxy_fix import ProxyFix from werkzeug.middleware.proxy_fix import ProxyFix
...@@ -13,6 +14,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix ...@@ -13,6 +14,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix
db = SQLAlchemy() db = SQLAlchemy()
login_manager = LoginManager() login_manager = LoginManager()
jwt = JWTManager() jwt = JWTManager()
csrf = CSRFProtect()
def create_app(config_name=None): def create_app(config_name=None):
"""Application factory pattern""" """Application factory pattern"""
...@@ -28,6 +30,7 @@ def create_app(config_name=None): ...@@ -28,6 +30,7 @@ def create_app(config_name=None):
db.init_app(app) db.init_app(app)
login_manager.init_app(app) login_manager.init_app(app)
jwt.init_app(app) jwt.init_app(app)
csrf.init_app(app)
# Configure login manager # Configure login manager
login_manager.login_view = 'auth.login' login_manager.login_view = 'auth.login'
......
...@@ -5,7 +5,7 @@ import shutil ...@@ -5,7 +5,7 @@ import shutil
from flask import request, jsonify, render_template, redirect, url_for, flash, current_app from flask import request, jsonify, render_template, redirect, url_for, flash, current_app
from flask_login import login_required, current_user from flask_login import login_required, current_user
from flask_jwt_extended import jwt_required, get_jwt_identity from flask_jwt_extended import jwt_required, get_jwt_identity
from flask_wtf.csrf import csrf from flask_wtf import csrf
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
from app.upload import bp from app.upload import bp
from app import db from app import db
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment