Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Документыzopeможно писать на языкеdtml -дополненииhtmlс синтаксисом для включения значений подобноssi (server-side include). Например,для вставки переменной
Содержание книги
- Для исключения неоднозначности документ вUnicodeможет быть в самом начале снабжен
- name,number,text a,1,something here b,2,"one, two, three" c,3,"no commas here"
- 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()
PythonInitHandler
PythonPostReadRequestHandler или PythonHeaderParserHandler в зависимости от нахождения в конфигурацииweb-сервера.
PythonLogHandler
Управление записью в логи.
PythonCleanupHandler
Обработчик,вызываемый непосредственно перед уничтожениемRequest-объекта.
Некоторые из этих обработчиков работают только глобально,так как при вызове даже каталог их приложения может быть неизвестен(таков,например,
PythonPostReadRequestHandler).
С помощью mod_python можно строитьweb-сайты с динамическим содержимым и контролировать некоторые аспекты работыweb-сервераApacheчерезPython-сценарии.
Среды разработки
Для созданияWeb-приложений применяются и более сложные средства,чемweb-сервер с расположенными на нем статическими документами иCGI-сценариями.В зависимости от назначения такие программные системы называются серверамиweb-приложений,системами управления содержимым(CMS, Content Management System),системыweb-публикации и средствами для созданияWWW-порталов.ПричемCMS-система может быть выполнена какweb-приложение,а средства для создания порталов могут базироваться на системахweb-публикации,для которыхCMS-система является подсистемой.Поэтому,выбирая систему для конкретных нужд,стоит уточнить,какие функции она должна выполнять.
ЯзыкPython,хотя и уступаетPHPпо количеству созданных на немweb-систем,имеет несколько достаточно популярных приложений.Самым ярким примером средства для создания сервераweb-приложений являетсяZope (произносится"зоп") (см.http://zope.org) (Z Object Publishing Environment, среда публикации объектов). Zope
имеет встроенныйweb-сервер,но может работать и с другимиWeb-серверами,например,Apache. На основе Zope можно строить web-порталы, например, с помощью Plone/Zope, но можно разрабатывать и собственныеweb-приложения.При этомZopeпозволяет разделить Форму,Содержание и Логику до такой степени,что Содержанием могут заниматься одни люди(менеджеры по содержимому),Формой-другие(web-дизайнеры),а Логикой-третьи(программисты). В случае с Zope Логику можно задать с помощью языка Python (или, как вариант, Perl),Форма может быть создана в графических или специализированныхweb-редакторах,а работа с содержимым организована черезWeb-формы самогоZope.
Zope и его объектная модель
В рамках этой лекции невозможно детально рассмотреть такой инструмент какZope,поэтому стоит лишь заметить,что он достаточно интересен не только в качестве среды разработкиweb-приложений,но и с точки зрения подходов.Например,уникальная объектно-ориентированная модельZopeпозволяет довольно гибко описывать требуемое приложение.
Zope включает в себя следующие возможности:
· Web-сервер. Zope может работать с Web-серверами через CGI или использовать свой встроенныйWeb-сервер(ZServer).
· Среда разработчика выполнена какWeb-приложение. Zopeпозволяет создаватьWeb-приложения через Web-интерфейс.
· Поддержка сценариев. Zopeподдерживает несколько языков сценариев: Python, Perlи собственный DTML(DocumentTemplateMarkupLanguage,язык разметки шаблона
документа).
· База данных объектов. Zopeиспользует в своей работе устойчивые объекты,хранимые в специальной базе данных(ZODB).Имеется достаточно простой интерфейс для управления этой базой данных.
· Интеграция с реляционными базами данных. Zopeможет хранить свои объекты и другие данные в реляционных СУБД: Oracle, PostgreSQL, MySQL, Sybaseи т.п.
В ряду других подобных системZopeна первый взгляд кажется странным и неприступным,однако тем,кто с ним"на ты",он открывает большие возможности.
РазработчикиZopeисходили из лежащей в основеWWWобъектной модели,в которой загрузку документа поURIможно сравнить с отправкой сообщения объекту.ОбъектыZopeразложены по папкам(folders),к которым привязаны политики доступа для пользователей,имеющих определенные роли.В качестве объектов могут выступать документы,изображения,мультимедиа-файлы,адаптеры к базам данных и т.п.
|