Я впервые пишу здесь, поэтому прошу прощения за путаницу.
Постоянно получаю эту ошибку.
Ошибка указывает на то, что пакет mysql не установлен в среде. я устанавливал это несколько раз разными способами, но при поиске все равно получаю ту же ошибку.
Код: Выделить всё
.venv) danielle@danielle PROJECT % pip install mysql-connector-python
Requirement already satisfied: mysql-connector-python in ./.venv/lib/python3.12/site-packages (9.0.0)
(.venv) danielle@danielle PROJECT % pip3 install mysql-connector-python
Requirement already satisfied: mysql-connector-python in ./.venv/lib/python3.12/site-packages (9.0.0)
(.venv) danielle@danielle PROJECT % python -m pip install mysql-connector
Collecting mysql-connector
Using cached mysql_connector-2.2.9-cp312-cp312-macosx_10_9_universal2.whl
Installing collected packages: mysql-connector
Successfully installed mysql-connector-2.2.9
(.venv) danielle@danielle PROJECT % pip install mysql-connector-python-rf
Requirement already satisfied: mysql-connector-python-rf in ./.venv/lib/python3.12/site-packages (2.2.2)
Код: Выделить всё
import os
class Config:
SECRET_KEY = os.getenv('SECRET_KEY', 'secret_key')
DB_USER = os.getenv('DB_USER', 'root')
DB_PASSWORD = os.getenv('DB_PASSWORD', 'password')
DB_HOST = os.getenv('DB_HOST', 'localhost')
DB_NAME = os.getenv('DB_NAME', 'Employee')
# mysql://username:password@localhost/db_name
SQLALCHEMY_DATABASE_URI = f"mysql+mysqlconnector://{DB_USER}:{DB_PASSWORD}@{DB_HOST}/{DB_NAME}"
SQLALCHEMY_TRACK_MODIFICATIONS = False
Код: Выделить всё
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from backend.config import Config
from flask_login import LoginManager
from sqlalchemy.exc import ProgrammingError
from sqlalchemy import create_engine
db = SQLAlchemy()
# Create Flask instance
def create_app():
app = Flask(__name__)
app.config.from_object(Config)
db.init_app(app) # Initialize the SQLAlchemy instance
# Initialize Flask-Login
login_manager = LoginManager()
login_manager.login_view = 'auth.login' # Redirect to login if not authenticated
login_manager.init_app(app)
from .models import StaffMember # Import models after initializing db
@login_manager.user_loader
def load_user(user_id):
return StaffMember.query.get(int(user_id)) # Query the user by ID
# Register Blueprints
from .views import views
from .auth import auth
app.register_blueprint(auth, url_prefix= '/')
app.register_blueprint(views, url_prefix= '/')
# Check if the database exists and create it if it doesn't
with app.app_context(): # Create the database tables based on model
create_database(app)
db.create_all()
print("Tables created succesfully")
return app
def create_database(app):
engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
conn = engine.connect()
try:
conn.execute(f"CREATE DATABASE IF NOT EXISTS {app.config.DB_NAME}")
print(f"Database '{app.config.DB_NAME}' created or already exists.")
except ProgrammingError as e:
print(f"An error occurred while creating the database: {e}")
finally:
conn.close()
Подробнее здесь: https://stackoverflow.com/questions/790 ... qlconnecto