无法将flask sqlAlchemy连接到mysql数据库

我正在尝试将我的 Flask 应用程序与 MySQL 数据库连接。这是 MySQL 数据


mysql> select user();

+----------------+

| user()         |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.01 sec)


mysql> SHOW DATABASES;

+--------------------+

| Database           |

+--------------------+

| alchemy            |

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

5 rows in set (0.00 sec)


mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| port          | 3306  |

+---------------+-------+

1 row in set (0.01 sec)

这是init.py


from flask import Flask

from config import Config

from flask_sqlalchemy import SQLAlchemy

from flask_migrate import Migrate


app = Flask(__name__)

app.config.from_object(Config)

db = SQLAlchemy(app)

migrate = Migrate(app, db)


from app import routes, models

这是config.py


import os

basedir = os.path.abspath(os.path.dirname(__file__))


class Config(object):

    SECRET_KEY = os.environ.get('SECRET_KEY') or 'test-key-motherfucker'

    SQLALCHEMY_DATABASE_URI = 'mysql://root@127.0.0.1:3360/alchemy'

    SQLALCHEMY_TRACK_MODIFICATIONS = False

和 models.py


from app import db


class Test(db.Model):

    id = db.Column(db.Integer, primary_key=True)

    name = db.Column(db.String(64), index=True, unique=True)


    def __repr__(self):

        return '<Test {}>'.format(self.name)

当我尝试初始化数据库时


flask db init

flask db upgrade

我收到


sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:mysql

我尝试使用 pymysql SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://rootl@127.0.0.1:3360/alchemy'


如何将mysql与sqlalchemy连接?


慕盖茨4494581
浏览 127回答 1
1回答

aluckdog

连接到 mysql 数据库的正确原因是mysql://username:password@server/db先试试这个SQLALCHEMY_DATABASE_URI&nbsp;=&nbsp;'mysql://root:@127.0.0.1/alchemy'如果它不起作用尝试这个SQLALCHEMY_DATABASE_URI&nbsp;=&nbsp;'mysql://root:@127.0.0.1:3306/alchemy'如果它不起作用尝试这个SQLALCHEMY_DATABASE_URI&nbsp;=&nbsp;'mysql+pymysql://root:@127.0.0.1:3306/alchemy我很抱歉提出了很多选择,但我希望其中之一有效:)如果都不起作用,那么问题不是与数据库的连接
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python