2

您好,我是 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 studio 查看是否添加了数据,并且我看到正在创建一个新行(使用新 id。)但没有插入数据名称、密码和电子邮件。

甚至在我尝试添加错误之前,我就看到了打印,但我不知道是什么。请帮帮我

( dm_user = Users("Dungeonmaster", "123", "email") 也尝试使用单引号(在使用 sqlalchemy 之前帮助了我,但这里没有区别)

4

1 回答 1

1

您的 init 方法不会初始化持久列。改为尝试(删除下划线):

def __init__(self, name, password, email):
    self.name = name
    self.password = password
    self.email = email   
于 2013-03-01T14:35:33.183 回答