【发布时间】:2018-12-12 03:24:40
【问题描述】:
我已将我的应用引擎升级到flexible,现在正在重构代码。除了standard,我还没有使用过Flask,也没有使用过SQLAlchemy。我已经设置了我的数据库,并且之前在standard 环境中拥有有效的、正常运行的连接。我现在正在尝试在Python3 flexible environment 中执行一个简单的 SQL:
SELECT id, latitude, longitude FROM weatherData
我现在通过以下方式与数据库建立了有效连接:
app = Flask(__name__)
app.config['WEATHER_DATABASE_URI'] = os.environ['WEATHER_DATABASE_URI']
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
各自的环境变量在我的app.yaml 文件中。
我知道SQLAlchemy 使用 ORM,但在我看到的所有示例中,他们在客户端和数据库之间创建了一个类作为“缓冲区”,首先创建表,然后执行 CRUD 操作。例如。
engine = create_engine('sqlite:///student.db', echo=True)
Base = declarative_base()
class Student(Base):
""""""
__tablename__ = "student"
id = Column(Integer, primary_key=True)
username = Column(String)
firstname = Column(String)
lastname = Column(String)
university = Column(String)
#----------------------------------------------------------------------
def __init__(self, username, firstname, lastname, university):
""""""
self.username = username
self.firstname = firstname
self.lastname = lastname
self.university = university
# create tables
Base.metadata.create_all(engine)
我注意到在这种情况下,他们使用的是engine,这似乎与我无关。简而言之,如何执行上述 SQL 查询?
谢谢:)
【问题讨论】:
-
嘿@IljaEverilä 感谢您的评论。但是,如果我不想创建该链接中描述的数据库,是否需要创建 User 类?我必须写出表的结构才能连接到它,这似乎很奇怪。
-
如果您不需要 ORM,您不必使用它。 SQLAlchemy 在某种程度上是 2 合 1 库:Core 和 ORM,建立在前者之上。如果使用 Core,您可以使用更传统的 SQL 方式。
标签: python google-app-engine flask sqlalchemy google-cloud-sql