SQLAlchemy: различия между версиями

Содержимое удалено Содержимое добавлено
копивио
Строка 1:
== Введение в SQLAlchemy ==
{{Копивио|url=http://wiki.python.su/Пакеты/БазыДанных/SQLAlchemy|date=2017-05-17}}
{{w|SQLAlchemy}} — это программное обеспечение с открытым исходным кодом для работы с базами данных при помощи языка [[SQL]]. Оно реализует технологию программирования {{w|ORM}} (Object-Relational Mapping), которая связывает базы данных с концепциями объектно-ориентированных языков программирования. SQLAlchemy позволяет описывать структуры баз данных и способы взаимодействия с ними прямо на языке [[Python]]. SQLAlchemy реализована в виде пакета для Python под лицензией MIT, а значит возможно ее использование в [[w:Проприетарное программное обеспечение|проприетарном ПО]].
 
Строка 93 ⟶ 94 :
===== Декларативное создание таблицы, класса и отображения за один раз =====
Предыдущее приближение к конфигурированию, включающее таблицу ''Table'', пользовательский класс и вызов ''mapper()'' иллюстрируют классический пример использования SQLAlchemy, в которой очень ценится разделение задач. Большое число приложений, однако, не требуют такого разделения, и для них SQLAlchemy предоставляет альтернативный, более лаконичный стиль: декларативный.
<source lang="python">
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
Строка 109 ⟶ 110 :
def __repr__(self):
return "<User('%s','%s', '%s')>" % (self.name, self.fullname, self.password)
 
#В данном случае, создание таблицы User
Base.metadata.create_all(engine)
</source>
 
Строка 186 ⟶ 184 :
Посылая запросы в сессию, мы можем увидеть, что они записаны в текущую транзакцию:
<source lang=python>session.query(User).filter(User.name.in_(['Vasko', 'fakeuser'])).all()
# [<User('VaskaVasko','Vasiliy Pypkin', '-=VP2001=-')>, <User('fakeuser','Invalid', '12345')>]</source>
Откатывая, мы видим, что имя vasiaUser опять стало vasia, и fake_user был удален из транзакции:
<source lang=python>