使用 sqlalchemy 连接到 mysql 并查询
Connect to mysql with sqlalchemy and query
我有一个包含股市行情的 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
我有一个包含股市行情的 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