Главная | Архив новостей | Общение | Площадка | Примеры OpenID
Хостинг Django от «Джино»
Оглавление

Доступ к данным

После создания модели Django автоматически предоставляет высокоуровневый API для работы с этими моделями. Изучите его, запустив команду python manage.py shell и набрав следующее:

>>> from books.models import Publisher
>>> p1 = Publisher(name='Addison-Wesley', address='75 Arlington Street',
...     city='Boston', state_province='MA', country='U.S.A.',
...     website='http://www.apress.com/')
>>> p1.save()
>>> p2 = Publisher(name="O'Reilly", address='10 Fawcett St.',
...     city='Cambridge', state_province='MA', country='U.S.A.',
...     website='http://www.oreilly.com/')
>>> p2.save()
>>> publisher_list = Publisher.objects.all()
>>> publisher_list
[<Publisher: Publisher object>, <Publisher: Publisher object>]

Эти несколько строк кода выполняют немного. Вот основное:

  • Во-первых, мы испортируем наш класс модели Publisher. Это позволит нам работать с таблицей базы данных, которая содержит информацию об издателях.

  • Мы создаём экземпляр этого класса, передав значения для каждого поля — name, address и так далее.

  • Чтобы сохранить объект в базе данных, вызовите метод save(). Django выполнит для этого SQL оператор INSERT.

  • Для того, чтобы получить информацию об издателях из базы данных, используйте атрибут Publisher.objects, который можно рассматривать как список всех издателей. Получаем список всех объектов Publisher из базы данных с помощью метода Publisher.objects.all(). Django выполнит SQL оператор SELECT.

Следует остановиться на одном моменте, если он не очевиден из примера. При создании объекта с помощью модели Django не сохраняет ничего в базе данных до тех пор, пока вы не вызовите метод save():

p1 = Publisher(...)
# At this point, p1 is not saved to the database yet!
p1.save()
# Now it is.

Если вам требуется создать объект и сохранить его в базе данных единой операцией, используйте метод objects.create(). Следующие пример эквивалентен предыдущему:

>>> p1 = Publisher.objects.create(name='Apress',
...     address='2855 Telegraph Avenue',
...     city='Berkeley', state_province='CA', country='U.S.A.',
...     website='http://www.apress.com/')
>>> p2 = Publisher.objects.create(name="O'Reilly",
...     address='10 Fawcett St.', city='Cambridge',
...     state_province='MA', country='U.S.A.',
...     website='http://www.oreilly.com/')
>>> publisher_list = Publisher.objects.all()
>>> publisher_list

Действительно, можно делать многое с помощью API для работы с базой данных, но сначала давайте позаботимся о небольших неудобствах.


Увидели ошибку?
Выделите её мышкой и нажмите
Ctrl-Enter
Обработано:
1049 49 130 71

Версия книги
1.0 2.0
Версия 2.0 в процессе перевода!

Мой луч
Многообразие света

Полезное
Актуальные вакансии, Python работа для python-разработчиков.


Скачать в формате
CHM от 2 сентября

Заказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта.
Чем чаще заказываете — тем больше перевожу.

Русская группа

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
R130494980980
Z425285133788
E112528079659
U327380922061

Книга помогла реализовать:
Проект «Мой луч»
АРМ УФМС.


Мой вебсайт стоит666 337,31 руб

© 2008-2009 Ruslan Popov @ gmail.com Powered by Django 1.1 beta 1 SVN-11114
Главная | Архив новостей | Общение | Площадка | Примеры OpenID