在SQLAlchemy中从__tablename__实例化表

时间:2014-11-18 10:06:03

标签: python sqlalchemy

是否可以使用其表名来实例化一个表?

我在SQLAlchemy文档中查找过,但找不到任何内容。

class A():
    __tablename__ = 'x'

newTable = Table('x')

可能是这样的吗?

这是一种伪语言,而不是真正的Python代码

谢谢,

1 个答案:

答案 0 :(得分:0)

Create_a.py

import os
import sys
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy import create_engine

Base = declarative_base()

class A(Base):
    __tablename__ = 'X'
    A_id = Column(Integer, primary_key=True)
    A_name = Column(String(250), nullable=False)

engine = create_engine('sqlite:///sqlalchemy_example.db')

Base.metadata.create_all(engine)

Insert_a.py

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

from Create_a import A, Base, engine

Base.metadata.bind = engine

DBSession = sessionmaker(bind=engine)

session = DBSession()
print A.__tablename__ 
A.__tablename__ = A
new_A = A.__tablename__(A_name='new A')
session.add(new_A)
session.commit()

A .__ tablename __ X