2015-10-04 72 views
1

我在阅读此页SQL炼金术大厦的ORM

http://docs.sqlalchemy.org/en/rel_1_0/orm/tutorial.html

我试图让我如何能建立一个链接到一个对象在Python定制表的句柄。我有这样的代码

from sqlalchemy import create_engine, Column, Integer, String, DateTime, Float, UnicodeText, VARCHAR, NVARCHAR, TEXT, DATE, distinct, ForeignKey, Table 
import sqlalchemy 
from sqlalchemy.orm import sessionmaker, relationship 
from sqlalchemy.ext.declarative import declarative_base 
engine = create_engine("sqlite:///./P_case.db", 
         echo=False) 

Session = sessionmaker(bind=engine) 
session = Session() 

Base = declarative_base() 

class Bus(Base): 

    __tablename__ = "bus_vech" 
    id = Column(Integer, primary_key = True) 

    ## Bus 
    number = Column(Integer) 

当我运行这个,我没有得到任何错误,但是从SQL alchmey已经向我描述的方式,它应该创建一个数据库,其中字段我有我的班巴士,将显示在运行脚本的目录中的续集数据库中。我希望看到我创建的数据库文件并使用SQL查看器查看它。

回答

1

你需要用两个语句来包围你的类,如下所示:

from sqlalchemy import create_engine, Column, Integer, String, DateTime, Float, UnicodeText, VARCHAR, NVARCHAR, TEXT, DATE, distinct, ForeignKey, Table 
import sqlalchemy 
from sqlalchemy.orm import sessionmaker, relationship 
from sqlalchemy.ext.declarative import declarative_base 
engine = create_engine("sqlite:///./P_case.db", 
         echo=False) 

Session = sessionmaker(bind=engine) 
session = Session() 

Base = declarative_base() 
metadata = Base.metadata ######################### 
class Bus(Base): 

    __tablename__ = "bus_info" 
    id = Column(Integer, primary_key = True) 

    ## Bus 
    number = Column(Integer) 

metadata.create_all(engine) ###################### 

我把########你需要的语句之后。你应该在你的目录P_case.db中看到这个文件。