栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

我想说你的问题与烧瓶完全无关。例如,您对模板,路线,视图或登录修饰符没有任何问题。

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

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

#!/usr/bin/python# -*- mode: python -*-from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_baseengine = create_engine('sqlite:///webmgmt.db', convert_unipre=True, echo=False)base = declarative_base()base.metadata.reflect(engine)from sqlalchemy.orm import relationship, backrefclass 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
方法),并编写一个使用该控制器的视图。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415220.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号