Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Для СУБДPostgreSQLнужно взять неPyGreSQL,аpsycopg,так как в первом есть
Содержание книги
- Документыzopeможно писать на языкеdtml -дополненииhtmlс синтаксисом для включения значений подобноssi (server-side include). Например,для вставки переменной
- С названием документа можно использовать
- lt;li tal:define="s modules/string" tal:repeat="el python:s.digits">
- Каждый сокет относится к одному из коммуникационных доменов. Модуль socket
- def do_something(x): lst = map(None, x); lst.reverse();
- print socket.getservbyname(srv, 'tcp'), srv
- Здравствуйте. Я изучаю курс по языку Python и отправляю письмо его автору.
- From smtplib import SMTP connect = smtp('mx. Abcde. Ru') connect. Set_debuglevel(1)
- Учетные данные пользователя: Server = "pop. Server. Com" username = "user" userpassword = "secretword"
- Получает строку s с приветствиемPOP3-сервера
- Команда аналогичнаretr,но Загружает только заголовок и
- Функции для загрузки сетевых объектов
- n=1&n=3&n=4&button=%F0%D2%C9%D7%C5%D4
- def download(url, file): import urllib, time start_t = time.time()
- urlparse(url, scheme='', allow_fragments=1)
- authinfo.add_password('My page', 'localhost', 'user1', 'secret')
- Вызвать удаленную функцию print req.add(1, 3)
- from SimpleXMLRPCServer import SimpleXMLRPCServer
- Лекция#10:Работа с базой данных
- Работа с базой данных из python-приложения
- Поддерживаетdb-api 2. 0,а значит,переход на любую другую субд потребует минимальных изменений в вызове функции connect() и,возможно,использования более
- Следующий сценарий создаст таблицу в базе данных(в случае сsqliteзаботиться о создании базы данных не нужно:файл создастся автоматически. Для других баз данных
- c = db.connect(database="tvprogram") cu = c.cursor()
- ОРТ|Новости|Новости|9.15 10.02.2003 9.15|ОРТ|"НЕЖНЫЙ ЯД"|Сериал|10.15
- c = db.connect(database="tvprogram") cu = c.cursor()
- Для СУБДPostgreSQLнужно взять неPyGreSQL,аpsycopg,так как в первом есть
- Лекция#11:Многопоточные вычисления
- Поддержка многопоточности в языкеPythonдоступна через использование ряда модулей.В
- Пример многопоточной программы
- Thread(group, target, name, args, kwargs)
- print "Hello, world!"
- Замки позволяют ограничивать вход в некоторую область программы одним потоком. Замки могут потребоваться для обеспечения целостности структуры данных. Например,если для
- print "Процесс %s запрашивает ресурс %s" % (n, r)
- from threading import BoundedSemaphore maxconnections = 5
- Еще одним способом коммуникации между объектами являются события.Экземпляры
- notify() и notifyAll() другими потоками.Необязательный аргумент timeout
- quot;""Занесение нового элемента в контейнер и оповещение потоков"""
- quot;""Занесение нового элемента в контейнер и оповещение потоков"""
- Следующий пример иллюстрирует параллельность выполнения потоков,используя возможности библиотеки графических примитивов Tkinter(она входит в стандартную
- quot;""Выход из программы"""
- Параллельное программирование требует тщательной отработки взаимодействия между потоками управления.Некоторые участки кода необходимо ограждать от одновременного
- В лекции будет рассматриваться пакетtkinter,который по сути является оберткой дляtcl/tk - известного графического пакета для сценарного языка tcl. На примере этого
- Вхождение курсора в пределы виджета
- Focusin. Получение фокуса окном. Focusout. Keypress. Нажатие клавиши на клавиатуре. Keyrelease. Отжатие клавиши на клавиатуре. Выход курсора за пределы виджета. Motion. Движение мыши в пределах виджета. Mousewheel. Прокрутка колесика мыши. Reparent. Измен
- tk = Tk() # основное окно приложения
- Создание и конфигурирование виджета
- from Tkinter import * tk = Tk()
- При желании можно задать стилевые опции для всех виджетов сразу:с помощью метода tk_setpalette(). Помимо использованных выше свойств в этом методе можно
- from Tkinter import * import urllib
- from Tkinter import * tk = Tk()
Другие СУБД и Python
Модуль sqlite дает прекрасные возможности для построения небольших и быстрых баз данных,однако для полноты изложения предлагается обзор модулей расширенияPythonдля других СУБД.
Выше везде импортировался модуль sqlite,с изменением его имени на db.Это было сделано не случайно.Дело в том,что подобные модули,поддерживающиеDB-API 2.0,есть и для других СУБД,и даже не в единственном числе.Согласно информации на сайтеwww.python.org DB-API 2.0-совместимые модули для Python имеют следующие СУБД или протоколы доступа к БД:
· zxJDBC Доступ поJDBC.
· MySQL Для СУБДMySQL.
· mxODBC Доступ поODBC,продается фирмойeGenix (http://www.egenix.com).
· DCOracle2, cx_Oracle Для СУБДOracle.
· PyGresQL, psycopg, pyPgSQL Для СУБДPostgreSQL.
· Sybase ДляSybase.
· sapdbapi Для СУБДSAP.
· KInterbasDB Для СУБДFirebird (это потомокInterbase).
· PyADO Адаптер кMicrosoft ActiveX Data Objects (только подWindows).
Примечание:
Для СУБДPostgreSQLнужно взять неPyGreSQL,аpsycopg,так как в первом есть
небольшие проблемы с типом для даты и времени при вставке параметров в методе execute().Кроме того,psycopg оптимизирован для скорости и многопоточности
(psycopg.threadsafety=2).
Таким образом,в примерах,используемых в этой лекции,вместо sqlite можно применять,например,psycopg:результат должен быть тем же,если,конечно,соответствующий модуль был установлен.
Однако в общем случае при переходе с одной СУБД на другую могут возникать нестыковки,даже,несмотря на поддержку одной версииDB-API.Например,у модулей могут различаться paramstyle.В этом случае придется немного переделать параметры к вызову
execute().Могут быть и другие причины,поэтому переход на другую СУБД следует тщательно тестировать.
Иметь интерфейсDB-APIмогут не только базы данных.Например,разработчики проекта fssdb стремятся построитьDB-API 2.0интерфейс к...файловой системе.
Несмотря на достаточно хорошие теоретические основы и стабильные реализации,реляционная модель-не единственная из успешно используемых сегодня.К примеру,уже рассматривался языкXMLи интерфейсы для работы с ним вPython.Древовидная модель данныхXMLдля многих задач является более естественной,и в настоящее время идут исследования,результаты которых позволят работать сXMLтак же легко и стабильно,как с реляционными СУБД.Язык программированияPython -один из полигонов этих исследований.
Решая конкретную задачу,разработчик программного обеспечения должен сделать выбор средств,наиболее подходящих для решения задачи.Очень многие подходят к этому выбору с предвзятостью,выбирая неоптимальную(для данной задачи или подзадачи)модель данных.В результате данные,которые по своей природе легче представить другой моделью,приходится хранить и обрабатывать в выбранной модели,зачастую невольно моделируя более естественные структуры доступа и хранения.Так, XMLможно хранить в реляционной БД,а табличные данные-вXML,однако это неестественно.Из-за этого сложность и подверженность ошибкам программного продукта возрастают,даже если использованные инструменты высокого качества.
|