python-2.7 - 使用 sqlalchemy 连接 mysql 并查询

标签 python-2.7 python-3.x sqlalchemy flask-sqlalchemy mysql-python

我有一个包含股票市场报价的 MySQL 数据库。我正在尝试创建一个 python 脚本来连接到数据库并查询它。这是我的 python 脚本...

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:password@localhost:8889/database_name'
db = SQLAlchemy(app)


class Stocks(db.Model):
    __tablename__ = 'stocks'
    stock_id = db.Column('stock_id', db.Integer, primary_key=True)
    adj_close = db.Column('adj_close', db.Float)
    close = db.Column('close', db.Float)
    date = db.Column('date', db.Date)
    high = db.Column('high', db.Float)
    low = db.Column('low', db.Float)
    open = db.Column('open', db.Float)
    symbol = db.Column('symbol', db.String(10))
    volume = db.Column('volume ', db.Float)

我正在尝试使用 python 控制台通过以下命令查询数据库...

>>>from file.py import Stocks
>>>data = Stocks.query.all()

我收到以下错误...

ImportError: No module named MySQLdb

我正在运行 python 2.7.12

如果我使用 python 3.5.2 运行此代码,则会收到以下错误...

ImportError: No module named 'MySQLdb'

如果我尝试安装MySQLdb,我会得到以下信息...

Could not find a version that satisfies the requirement MySQLdb (from versions: )
No matching distribution found for MySQLdb

我该如何解决这个问题?

最佳答案

使用“mysql://...”连接字符串,SQLAlchemy 将默认使用 MySQL-python 进行连接,因此您需要使用 pip 安装该包。

pip install MySQL-python

或者,您可以使用另一个库进行连接,例如 PyMySQL(MySQL-python 不再积极开发)。只需更改您的连接字符串:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:password@localhost:8889/database_name'

安装 PyMySQL:

pip install PyMySQL

关于python-2.7 - 使用 sqlalchemy 连接 mysql 并查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40943625/

相关文章:

python - 是否可以对 argparse 参数执行 2 个操作?

python-2.7 - python 2.7 : Area opening and closing binary image in Python not so accurate

python-3.x - cmake : brp-python-bytecompile and python3

python - 如何在 Pyramid 中的 SQLAlchemy 中的多个选择中维护多表完整性?

python-2.7 - 使用 cython 加速数以千计的集合操作

python - 如何在不使用 import * 的情况下导入导入其他模块的模块

python - 使用 beautifulsoup4 进行抓取时数据丢失

python - 如何在ram中创建目录并获取路径?

python - SqlAlchemy 没有定义这样的多态身份

python - 未在 sqlalchemy 中提交列更新(sqlalchemy-utils)