您所指向的教程显示了使用SQLAlchemy连接MySQL的正确方法。以下是您的代码,几乎没有更改:
我的假设是您的MySQL服务器在运行Flask的同一台计算机上运行,并且数据库名称为db_name。如果您的服务器不是同一台机器,请将服务器IP替换为
localhost。
from flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATAbase_URI'] = 'mysql://username:password@localhost/db_name'db = SQLAlchemy(app)class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) email = db.Column(db.String(120), unique=True) def __init__(self, username, email): self.username = username self.email = email def __repr__(self): return '<User %r>' % self.usernameadmin = User('admin', 'admin@example.com')db.create_all() # In case user table doesn't exists already. Else remove it.db.session.add(admin)db.session.commit() # This is needed to write the changes to databaseUser.query.all()User.query.filter_by(username='admin').first()我偶然发现
SQLAlchemy(
mqsqldb)使用的默认驱动程序在我的虚拟环境中没有为我编译。因此,我选择了具有完整python实现的MySQL驱动程序
pymysql。使用安装后
pipinstall pymysql,SQLALCHEMY_DATAbase_URI将更改为:
app.config['SQLALCHEMY_DATAbase_URI'] = 'mysql+pymysql://username:password@localhost/db_name'
使用像SQLAlchemy这样的ORM的目的是,在大多数情况下,您可以使用几乎没有变化的其他数据库。所以,我的回答是。您应该能够使用sqlite代码将MySQL与上面的代码中映射的URI一起使用。



