- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个原型(prototype)来提取股票价格并将它们转储到数据库中。我想将 __tablename__
作为参数传递给 SQLAchemy,以便将给定股票的股票报价记录到自己的表中。 (顺便说一句,我是 SQLAlchemy 的新手)
我提到了这个帖子:Python Sqlalchemy - tablename as a variable
并想出了以下代码:
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, scoped_session
from sqlalchemy import Column, String, Integer, Date
Base = declarative_base()
def create_models(tablename):
class Stock(Base):
__tablename__ = tablename
timestamp = Column(String, primary_key=True)
ltp = Column(String)
def __init__(self, timestamp, ltp):
self.timestamp = timestamp
self.ltp = ltp
create_models('ABCD')
engine = create_engine('sqlite:////ticks.db')
Base.metadata.create_all(bind=engine)
session_factory = sessionmaker(bind=engine)
Session = scoped_session(session_factory)()
tick = Stock('2019-02-12 09:15:00', '287')
Session.merge(tick)
Session.commit()
但它失败了:
Traceback (most recent call last):
File "quickies.py", line 32, in <module>
tick = Stock('2019-02-12 09:15:00', '287')
NameError: name 'Stock' is not defined
错误很明显。但后来我不确定如何继续使用 __tablename__
作为变量。任何指针都会有很大帮助。
最佳答案
Stock
类的范围仅限于 create_models
函数。要在函数之外创建此类的对象,您可以从函数中返回该类,然后使用它。
看看下面的解决方案:
def create_models(tablename):
class Stock(Base):
__tablename__ = tablename
timestamp = Column(String, primary_key=True)
ltp = Column(String)
def __init__(self, timestamp, ltp):
self.timestamp = timestamp
self.ltp = ltp
return Stock #return the class
Stock = create_models('ABCD')
tick = Stock('2019-02-12 09:15:00', '287')
看看Python scope tutorial有关范围的更多详细信息。
关于python - SQLAlchemy:__tablename__ 作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54646044/
我正在开发一个原型(prototype)来提取股票价格并将它们转储到数据库中。我想将 __tablename__ 作为参数传递给 SQLAchemy,以便将给定股票的股票报价记录到自己的表中。 (顺便
为了处理不断增长的数据库表,我们对表名进行分片。所以我们可以有这样命名的数据库表: table_md5one table_md5two table_md5three 所有表都具有完全相同的架构。 我们
我对 SQlAlchemy 完全陌生,为了得到它,我编写了以下代码: from sqlalchemy import Column, String, Integer, ForeignKey from s
我是Python的新手,需要您的帮助。我有一台Mac,使用python3。使用SublimeText,这是我在运行代码时收到的信息==>我收到此错误:NameError: name '__tablen
我有 2 个具有相同列结构的表。 该脚本从 2 个不同的 json 源中提取,其键略有不同。 我的 Item 类识别源,然后解析数据。 在我的 Item 类中,我希望能够根据数据源更改 __table
使用 flask-sqlalchemy,我想创建一些类来继承声明类并添加 __bind_key__。这样我就可以创建一些表并继承这些绑定(bind)类。 from flask.ext.sqlalche
我正在尝试创建一个基类,其中为方便起见指定了 id 和 url。 Base = declarative_base() Base.query = session.query_property() cla
我是一名优秀的程序员,十分优秀!