0

У меня есть база данных MySQL с котировками на фондовом рынке. Я пытаюсь создать скрипт python для подключения к базе данных и запроса. Вот мой питон скрипт ...Подключиться к mysql с sqlalchemy и запросом

from flask import Flask 
from flask_sqlalchemy import SQLAlchemy 

app = Flask(__name__) 
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:[email protected]: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) 

Я пытаюсь запросить базу данных с использованием питона консоли со следующими командами ...

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

И я получаю следующую ошибку .. .

ImportError: No module named MySQLdb 

Я бегу питона 2.7.12

Если я запускаю этот код с Python 3.5.2 я получаю п ollowing ошибка ...

ImportError: No module named 'MySQLdb' 

Если я пытаюсь установить MySQLdb я получаю следующее ...

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

Как я могу это исправить?

ответ

1

С помощью строки подключения «mysql: // ...» SQLAlchemy будет использовать MySQL-python для подключения по умолчанию, поэтому вам необходимо установить этот пакет с помощью pip.

pip install MySQL-python 

В качестве альтернативы, вы можете использовать другую библиотеку для подключения, например, PyMySQL (MySQL-питон уже не активно развивается). Просто измените строку соединения:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:[email protected]:8889/database_name' 

Чтобы установить PyMySQL:

pip install PyMySQL 
+0

Ваш второй вариант работал. – Gilbert