开发者社区> 问答> 正文

如何围绕现有数据库构建Flask应用程序??mysql

我已经有一个现有的数据库,其中包含很多表和很多数据MySQL。我打算创建一个Flask应用程序,并与它一起使用sqlalchemy。现在,我在irc上查询了一下,然后在Google上四处查看,并尝试了以下想法:

首先,我使用sqlacodegen从我的生成模型DB。但是后来我对此有些困惑,然后又看了一些。我发现了这个。

这看起来是一个优雅的解决方案。

因此,第二,我models.py根据那里的解决方案重写了自己的内容,现在我更加困惑了。我正在寻找与现有数据库一起构建此Flask应用程序的最佳方法。

我查看了flask文档,但是对于具有现有数据库的项目并没有真正获得任何帮助。从头开始创建东西,创建数据库以及所有东西都有很多好东西。但是我真的很困惑。

请注意,这是我的第一天工作Flask经验,但是我有的经验Django,因此基本概念并不是障碍。在为该用例选择最佳方法时,我需要一些指导。详细的解释将不胜感激。详细地说,我绝对不希望有人编写所有代码并为此而spoon之以鼻,但这足以使我起步,即将该数据库无缝集成到flaskvia中sqlalchemy。注意我的数据库在MySQL。

展开
收起
保持可爱mmm 2020-05-17 20:45:47 1236 0
1 条回答
写回答
取消 提交回答
  • 我想说你的问题与烧瓶完全无关。例如,您对模板,路线,视图或登录修饰符没有任何问题。

    您在其中挣扎的地方是SQLAlchemy。

    因此,我的建议是暂时忽略Flask并先适应SQLAlchemy。您需要适应现有的数据库以及如何从SQLAlchemy访问它。使用一些MySQL文档工具找到解决此问题的方法。首先是这样的(请注意,与Flask无关,请问所有……):

    #!/usr/bin/python

    -- mode: python --

    from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base

    engine = create_engine('sqlite:///webmgmt.db', convert_unicode=True, echo=False) Base = declarative_base() Base.metadata.reflect(engine)

    from sqlalchemy.orm import relationship, backref

    class Users(Base): table = Base.metadata.tables['users']

    if name == 'main': from sqlalchemy.orm import scoped_session, sessionmaker, Query db_session = scoped_session(sessionmaker(bind=engine)) for item in db_session.query(Users.id, Users.name): print item 在“ engine =” 行中,您需要提供MySQL数据库的路径,以便SQLAlchemy可以找到它。就我而言,我使用了一个预先存在的sqlite3数据库。

    在“ class Users(Base)” 行中,您需要使用MySQL数据库中的现有表之一。我知道我的sqlite3数据库有一个名为“用户”的表。

    此后,SQLalchemy知道如何连接到MySQL数据库,并且知道其中一个表。现在,您需要添加所需的所有其他表。最后,您需要指定与SQLalchemy的关系。在这里,我的意思是诸如一对一,一对多,多对多,亲子等等。SQLAlchemy网站包含有关此内容的冗长部分。

    在“ if name == 'main'” 行之后才出现一些测试代码。如果我不导入python脚本而是运行它,它将被执行。在这里,您看到我创建了一个数据库会话,这是一个非常简单的查询。

    我的建议是,您首先阅读有关SQLAlchemy文档的重要部分,例如描述性表定义,关系模型以及如何查询。一旦知道了这一点,就可以将示例的最后一部分更改为控制器(例如,使用Python的yield方法),并编写一个使用该控制器的视图。来源:stack overflow

    2020-05-17 20:51:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载

相关镜像