2015-10-04 109 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中看到這個文件。