SQLAlchemy,它如何连接到mysql workbench中创建的现有MYSQL数据库?

时间:2014-09-24 10:22:59

标签: mysql sql python-2.7 sqlalchemy mysql-workbench

我正在尝试创建简单的GUI python应用程序来填充现有的MYSQL数据库。我应该使用sqlalchemy连接到服务器吗?我只是想知道Alchemy如何连接到使用MYSQL工作台创建的现有数据库? 通常我使用sqlalchemy创建数据库和表,这就是我可以查询和编辑它的原因。但是对于这种情况,数据库已经创建。我想问题是如何创建现有数据库的SQLAlchemy代码? 抱歉没有更好的词来解释我的问题。我对数据库并不熟悉。

2 个答案:

答案 0 :(得分:1)

您可以使用sqlacodegen为现有数据库中的模型生成python代码。您还可以使用SQLAlchemy的内置功能reflect the tables甚至map them to classes在运行时动态加载所有内容。 SQLAlchemy并不关心数据库的来源,只是它的位置和外观。

答案 1 :(得分:0)

要使用SQLAlchemy连接到数据库中的现有表,即使未使用SQLAlchemy创建表也很容易。 为此,您需要使用flask框架和flask-sqlalchemy

app = Flask(__name__)
app.secret_key = "any key"
db = SQLAlchemy(app)
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql://root@localhost/database_name'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db.init_app(app)

需要创建类以将它们映射到数据库中的表。 举例说,数据库有一个名为STUDENT的表,该表的类将是这样

class Student(db.Model):
    __tablename__ = "STUDENT"
    id= db.Column(db.Integer , primary_key = True , nullable=False)
    name = db.Column(db.Integer)
    address= db.Column(db.String)
    grade= db.Column(db.String)
    year = db.Column(db.Integer)

要获取SQLAlchemy数据类型:https://docs.sqlalchemy.org/en/13/core/types.html 同样,也可以为其他表创建其他类。 为了对数据执行任何操作,必须使用类对象类型。 假设您想获取学生名单

stu_obj = Student.query.all()

这将为您提供学生表中所有行的列表。 对于SQLAlchemy ORM查询 :https://www.tutorialspoint.com/sqlalchemy/sqlalchemy_orm_declaring_mapping.htm