我已经在一个烧瓶应用程序,是数据库密集型工作了约4个月。我对python、flask和sqlalchemy非常陌生,但对web和数据库编程非常熟悉。你知道吗
我主要使用核心SQL来处理硬数据库位,但也使用了ORM。我在核心SQL中使用的主要方法是text()和bindparam()函数,它们通过sqlalchemy方言提供了数据库独立性。你知道吗
我发现自己不得不混合我的模块导入来得到我想要的东西。这里有一个简单但典型的例子。你知道吗
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import bindparam
from sqlalchemy.sql import text
SQLAlchemy对象随后会在我的代码的ORM位中使用,我相信它也会按照this处理会话。它是这样初始化的。你知道吗
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = appdb
app.config['SQLALCHEMY_BINDS'] = {'meta': foodb, 'data': bardb}
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
然后我使用db
变量访问所有的flask\u sqlalchemy内容。你知道吗
直接sqlalchemy的东西被用在我的核心SQL中,看起来像这样。你知道吗
我现在发现的是,我正在混合代码,例如这样。你知道吗
eng = db.get_engine(bind='meta')
cxn = eng.connect()
sql = text('select * from foo')
rows = cxn.execute(sql).fetchall()
在我看来,如果我决定使用flask\u sqlalchemy,我不应该单独导入sqlalchemy的东西,它应该在flask\u sqlalchemy的某个地方。混合使我对副作用感到紧张。你知道吗
所以我有两个问题。你知道吗
下面对我自己问题的回答概括了我在过去4个月里通过艰苦的努力学到的一些东西。你知道吗
我是一个数据库程序员,希望使用SQLAlchemy核心SQL与我的数据库对话,而不是ORM。下面的代码就是在这种情况下给出的。你知道吗
我希望它能帮助别人。你知道吗
相关问题 更多 >
编程相关推荐