Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
lt;li tal:define="s modules/string" tal:repeat="el python:s.digits">
Содержание книги
- input_file.close() output_file.close()
- 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:Многопоточные вычисления
<ul>
<li tal:define="s modules/string" tal:repeat="el python:s.digits">
<a href="DUMMY"
tal:attributes="href string:/digit/$el" tal:content="el">SELECTION</a>
</li>
</ul>
Этот шаблон породит следующий результат:
<ul>
<li><a href="/digit/0">0</a></li> <li><a href="/digit/1">1</a></li> <li><a href="/digit/2">2</a></li> <li><a href="/digit/3">3</a></li> <li><a href="/digit/4">4</a></li> <li><a href="/digit/5">5</a></li> <li><a href="/digit/6">6</a></li> <li><a href="/digit/7">7</a></li> <li><a href="/digit/8">8</a></li> <li><a href="/digit/9">9</a></li>
</ul>
Здесь нужно обратить внимание на два основных момента:
· в шаблоне можно использовать выраженияPython (в данном примере переменная s определена как модульPython)и переменную-счетчик цикла el,которая проходит итерации по строке string.digits.
· с помощьюTALможно задавать не только содержимое элемента,но и атрибута тега(в данном примере использовался атрибут href).
Детали можно узнать по документации.Стоит лишь заметить,что итерация может происходить по самым разным источникам данных:содержимому текущей папки,выборке из базы данных или,как в приведенном примере,по объектуPython.
Любой программист знает,что программирование тем эффективнее,чем лучше удалось"расставить скобки", выведя "общий множитель за скобки". Другими словами, хорошие программисты должны быть достаточно"ленивы",чтобы найти оптимальную декомпозицию решаемой задачи.При проектировании динамическогоweb-сайтаZopeпозволяет разместить"множители"и"скобки"так,чтобы достигнуть максимального повторного
использования кода(как разметки,так и сценариев).Помогает этому уникальный подход к построению взаимоотношений между объектами:заимствование(acquisition).
Пусть некоторый объект(документ,изображение,сценарий,подключение к базе данных и т.п.)расположен в папкеExample.Теперь объекты этой папки доступны по имени из любых нижележащих папок.Даже политики безопасности заимствуются более глубоко вложенными папками от папок,которые ближе к корню.Заимствование является очень важной концепциейZope,без понимания которойZopeсложно грамотно применять,и наоборот,ее понимание позволяет экономить силы и время,повторно используя объекты в разработке.
|