Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Каждый сокет относится к одному из коммуникационных доменов. Модуль socket
Содержание книги
- fieldnames=['name', 'number', 'text']) output_file = open("pr1.csv", "wb")
- Разбор сообщения. Класс Message
- quot;felton olive" <zinakinch@thecanadianteacher.com>
- parts.append(submsg.get_content_type()) ct_fields.append(submsg.get('Content-Type', '')) filenames.append(submsg.get_filename())
- from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText
- class MIMEBase(_maintype, _subtype, **_params)
- for text, enc in email.Header.decode_header(subj): print enc, text
- lt;?xml version="1.0" encoding="iso-8859-1"?> <expression>
- lt;operation type="+"> <operand>2</operand> <operand>
- from xml.dom import minidom dom = minidom.Document()
- разработчики стараются придерживаться единогоAPI,который продиктован стандартом
- previousSibling(предыдущий брат).parentNode
- getAttribute(attname). getAttributeNode(attrname). removeAttribute(attname). removeAttributeNode(oldAttr). setAttribute(attname, value). setAttributeNode(newAttr). Пространства имен. lt;?xml version="1.0" encoding="UTF-8"?> <rdf:
- dom = xml.dom.minidom.parse("ex.xml")
- if node.nodeType == node.ELEMENT_NODE: print node.nodeName, node.namespaceURI
- Для корректной работы сценарии помещаются в предназначенный для этого каталог наweb-сервере (обычно он называется cgi-bin) или, если это разрешено конфигурацией
- print """Content-Type: text/plain
- print """Content-Type: image/jpeg
- В приведенных примерах имена появлялись в строке запроса только один раз. Некоторые формы порождают несколько значений для одного имени. Получить все значения можно с
- В начале отлаживаемого сценария нужно поставить
- lt;Directory "/var/www/html/mywebdir> AddHandler python-program .py PythonHandler mprocess
- password = req.get_basic_auth_pw() user = req.connection.user
- Документы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доступна через использование ряда модулей.В
Самое интересное,что заимствовать объекты можно также из параллельных папок.Пусть,например,рядом с папкойExampleнаходится папкаZigzag,в которой лежит нужный объект(его наименованиеnote).При этом в папкеExampleпрограммиста интересует объект index_html,внутри которого вызываетсяnote.Обычный путь к объекту index_html будет происходить поURIвроде http://zopeserver/Example/.А вот если нужно
использоватьnoteизZigzag (и в папкеExampleего нет),тоURIбудет:http://zopeserver/Zigzag/Example/.Таким образом,указание пути вZopeотличается от
традиционного пути,скажем,вUnix:в пути могут присутствовать"зигзаги"через параллельные папки,дающие возможность заимствовать объекты из этих папок.Таким образом,можно сделать конкретную страницу,комбинируя один или несколько независимых аспектов.
Заключение
В этой лекции были рассмотрены различные подходы к использованиюPythonвweb-приложениях.Самый простой способ реализацииweb-приложения-использованиеCGI-сценариев.Более сложным является использование специальных модулей дляweb-сервера,таких как mod_python.Наконец,существуют технологии вродеZope,которые предоставляют специализированные сервисы,позволяющие создаватьweb-приложения.
Лекция#9:Сетевые приложения наPython
Работа с сокетами
Применяемая вIP-сетях архитектура клиент-сервер используетIP-пакеты для коммуникации между клиентом и сервером.Клиент отправляет запрос серверу,на который тот отвечает.В случае сTCP/IPмежду клиентом и сервером устанавливается соединение(обычно с двусторонней передачей данных), а в случае с UDP/IP - клиент и сервер обмениваются пакетами(дейтаграммамми)с негарантированной доставкой.
Каждый сетевой интерфейсIP-сети имеет уникальный в этой сети адрес(IP-адрес).Упрощенно можно считать,что каждый компьютер в сети Интернет имеет собственныйIP-адрес.При этом в рамках одного сетевого интерфейса может быть несколько сетевых портов.Для установления сетевого соединения приложение клиента должно выбрать свободный порт и установить соединение с серверным приложением,которое слушает(listen) порт с определенным номером на удаленном сетевом интерфейсе. Пара IP-адрес и порт характеризуют сокет(гнездо) -начальную(конечную)точку сетевой коммуникации.Для создания соединенияTCP/IPнеобходимо два сокета:один на локальной машине,а другой-на удаленной.Таким образом,каждое сетевое соединение имеетIP-адрес и порт на локальной машине,а такжеIP-адрес и порт на удаленной машине.
Модуль socket обеспечивает возможность работать с сокетами изPython.Сокеты используют транспортный уровень согласно семиуровневой моделиOSI (Open SystemsInterconnection, взаимодействие открытых систем), то есть относятся к более низкому уровню,чем большинство описываемых в этом разделе протоколов.
Уровни моделиOSI:
Физический
Поток битов,передаваемых по физической линии.Определяет параметры физической линии.
Канальный(Ethernet, PPP, ATMи т.п.)
Кодирует и декодирует данные в виде потока битов,справляясь с ошибками,возникающими на физическом уровне в пределах физически единой сети.
Сетевой(IP)
Маршрутизирует информационные пакеты от узла к узлу.
Транспортный(TCP, UDPи т.п.)
Обеспечивает прозрачную передачу данных между двумя точками соединения.
Сеансовый
Управляет сеансом соединения между участниками сети.Начинает,координирует и завершает соединения.
Представления
Обеспечивает независимость данных от формы их представления путем преобразования форматов.На этом уровне может выполняться прозрачное(с точки зрения вышележащего уровня)шифрование и дешифрование данных.
Приложений(HTTP, FTP, SMTP, NNTP, POP3, IMAPи т.д.)
Поддерживает конкретные сетевые приложения.Протокол зависит от типа сервиса.
поддерживает доменыUNIXиInternet.Каждый домен подразумевает свое семейство протоколов и адресацию.Данное изложение будет затрагивать только доменInternet,а именно протоколыTCP/IPиUDP/IP,поэтому для указания коммуникационного домена при создании сокета будет указываться константа socket.AF_INET.
В качестве примера следует рассмотреть простейшую клиент-серверную пару.Сервер будет принимать строку и отвечать клиенту.Сетевое устройство иногда называют хостом(host), поэтому будет употребляться этот термин по отношению к компьютеру, на котором работает сетевое приложение.
Сервер:
|