Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
urlparse(url, scheme='', allow_fragments=1)
Содержание книги
- 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доступна через использование ряда модулей.В
- Пример многопоточной программы
- 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(она входит в стандартную
quote_plus(s, safe='')
Функция экранирует некоторые символы вURL (в строке запроса),чтобы их можно было отправлять наweb-сервер.Аналогична quote(),но заменяет пробелы на плюсы.
unquote(s)
Преобразование,обратное quote_plus().Пример:
>>> urllib.unquote('a%20%3D%20b%20%2B%20c') 'a = b + c'
unquote_plus(s)
Преобразование,обратное quote_plus().Пример:
>>> urllib.unquote_plus('a+=+b+%2B+c') 'a = b + c'
Для анализаURLможно использовать функции из модуля urlparse:
urlparse(url, scheme='', allow_fragments=1)
РазбираетURLв6компонентов(сохраняя экранирование символов):scheme://netloc/path;params?query#frag
urlsplit(url, scheme='', allow_fragments=1)
РазбираетURLв6компонентов(сохраняя экранирование символов):scheme://netloc/path?query#frag
urlunparse((scheme, netloc, url, params, query, fragment))
СобираетURLиз6компонентов.
urlunsplit((scheme, netloc, url, query, fragment))
СобираетURLиз5компонентов.
Пример:
>>> from urlparse import urlsplit, urlunsplit
>>> URL = "http://google.com/search?q=Python"
>>> print urlsplit(URL)
('http', 'google.com', '/search', 'q=Python', '')
>>> print urlunsplit(
... ('http', 'google.com', '/search', 'q=Python', '')) http://google.com/search?q=Python
Еще одна функция того же модуля urlparse позволяет корректно соединить две частиURL
- базовую и относительную:
>>> import urlparse
>>> urlparse.urljoin('http://python.onego.ru', 'itertools.html') 'http://python.onego.ru/itertools.html'
Возможности urllib2
Функциональности модулей urllib и urlparse хватает для большинства задач,которые
решают сценарии наPythonкакweb-клиенты.Тем не менее,иногда требуется больше.На этот случай можно использовать модуль для работы с протоколомHTTP -httplib-и
создать собственный класс дляHTTP-запросов(в лекциях модуль httplib не рассматривается).Однако вполне вероятно,что нужная функциональность уже имеется в модуле urllib2.
Одна из полезных возможностей этих модулей-доступ кweb-объектам,требующий авторизации.Ниже будет рассмотрен пример,который не только обеспечит доступ с авторизацией,но и обозначит основную идею модуля urllib2: использование обработчиков(handlers),каждый из которых решает узкую специфическую задачу.
Следующий пример показывает,как создать собственный открывательURLс помощью модуля urllib2(этот пример взят из документации поPython):
|