2013-03-01 66 views
2

你好,我是SQLalchemy的新手,並且在將數據插入列中時遇到了一些問題。python sqlalchemy沒有填寫行

import sqlalchemy 
from sqlalchemy import create_engine        
from sqlalchemy.ext.declarative import declarative_base     
from sqlalchemy import Column, Integer, String, ForeignKey, Boolean  
from sqlalchemy.orm import relationship, backref       
from sqlalchemy.orm import sessionmaker 

engine = create_engine('sqlite:///test.db') 
Base = declarative_base() 

class Users(Base): 
    __tablename__ = 'users' 

    id = Column(Integer, primary_key=True) 
    name = Column(String, unique=True) 
    password = Column(String) 
    email = Column(String) 

     def __init__(self, name, password, email): 
      self._name = name 
      self._password = password 
      self._email = email  

Base.metadata.create_all(engine) 
Session = sessionmaker(bind=engine) 
Session.configure(bind=engine) 
session = Session() 


dm_user = Users("Dungeonmaster", "123", "email") 
print dm_user.name 
print dm_user.password 
print dm_user.email 

session.add(dm_user) 

our_user = session.query(Users).filter_by(name='Dungeonmaster').first() 

session.commit() 

我使用SQLite的工作室看到,如果添加的數據,我看到一個新的行正在作出(新的標識。),但數據的名稱,密碼和電子郵件沒有被插入。

隨着打印我看到甚至在我嘗試添加某些東西出錯之前,但我不知道是什麼。請幫我有點

(dm_user =用戶(「地下城大師」,「123」,「郵件」),單引號嘗試,以及(使用SQLAlchemy的前幫我,但這裏沒有區別)

回答

1

你init方法不初始化持久列嘗試,而不是(刪除下劃線):

def __init__(self, name, password, email): 
    self.name = name 
    self.password = password 
    self.email = email 
+0

媽呀,很抱歉,改變了這一切之後,似乎我錯過了一些真覺得很傻我沒有看到,哈哈感謝的人。 – 2013-03-01 14:49:46