Форум сайта python.su
Здравстуйте!
я только начинаю изучать алхимию и вообще ОРМ. Я пытался вывести id пользователя ed, он мне выводит все кроме 1.Подскажите,пожалуйста, как это исправить. Вот код.
import sqlalchemy
from sqlalchemy import create_engine
engine = create_engine('sqlite:///helloworld.db', echo=True)
from sqlalchemy import Table, Column, Integer, String, MetaData
metadata = MetaData()
users_table = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String),
Column('fullname', String),
Column('password', String)
)
metadata.create_all(engine)
class User(object):
def __init__(self, name, fullname, password):
self.name = name
self.fullname = fullname
self.password = password
def __repr__(self):
return "<User('%s','%s', '%s')>" % (self.name, self.fullname, self.password)
from sqlalchemy.orm import mapper
mapper(User, users_table)
ed_user = User('ed', 'Ed Jones', 'edspassword')
from sqlalchemy.orm import sessionmaker
Session = sessionmaker()
Session.configure(bind=engine)
session=Session()
new_user=User('N', 'Shantaev', 'parol')
session.add(new_user)
session.add(ed_user)
our_user=session.query(User).filter_by(name='ed').first()
session.add(our_user)
print ed_user is our_user
print ed_user.id
Офлайн
Не увидел у Вас ни одного коммита … Сюдя по всему именно по этому id и None, так как оно генериться SqlLite.
Вам нужно или написать session.commit(), а потом достать пользователя.
Либо написать что-то вроде:
ed_user = User('ed', 'Ed Jones', 'edspassword')
# код создания сессии
ed_user = session.merge(ed_user)
Офлайн
Sleepwalkerспасибо)
Не увидел у Вас ни одного коммита … Сюдя по всему именно по этому id и None, так как оно генериться SqlLite.
Вам нужно или написать session.commit(), а потом достать пользователя.
Либо написать что-то вроде:ed_user = User('ed', 'Ed Jones', 'edspassword')
# код создания сессии
ed_user = session.merge(ed_user)
Офлайн