Flask csrf: в Blueprint отсутствует ключ - PullRequest
0 голосов
/ 17 июня 2020

Привет всем, у меня есть эта проблема, которую я не могу исправить:

KeyError: «Для использования CSRF требуется секретный ключ».

Теперь я использую Flask с Blueprint . Я вообще не использую CSRF, но думаю, что LoginForm есть.

Я структурировал свой проект с помощью Blueprint. До этого все находилось.

Вот мой init .py файл:

from flask import Flask
from flask_login import LoginManager
from flask_bcrypt import Bcrypt
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from flask.config import Config
from flask_wtf.csrf import CSRFProtect


db = SQLAlchemy()
migrate = Migrate(db)
bcrypt = Bcrypt()
csrf = CSRFProtect()


login_manager = LoginManager()
login_manager.login_view = "login"
login_manager.login_message_category = "info"

from Flask import models
from Flask.models import User

admin = Admin(name='Admin')

def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(Config)

    admin.init_app(app)
    db.init_app(app)
    csrf.init_app(app)

    login_manager.init_app(app)
    migrate.init_app(app)
    bcrypt.init_app(app)
    db.init_app(app)

    from Flask.users.routes import users
    app.register_blueprint(users)

    return app

Это мой файл config.py:

import os

class Config:
    SECRET_KEY = "ef2006629e09b70e55a6fb95c4e3a538"
    SQLALCHEMY_DATABASE_URI = "sqlite:///site.db"
    # WTF_CSRF_SECRET_KEY= "bjk567nvhbvj63vg363vghvghv3768vgfbkijvr784"
    # CSRF_ENABLED = True

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Я обнаружил проблему

Я неправильно вызвал свой файл config.py

В моем init .py файле я меняю строку: с flask .config import Config

со строкой: from Flask .config import Config

Flask - это имя моего файла, которое отличается от flask. Надо было найти другое имя

0 голосов
/ 17 июня 2020

Вы должны создать свойство SECRET_KEY=<Your secret key here> в своей конфигурации. Это должна быть сложная строка.

...