<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF117:google - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF117:google&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 19:30:46 GMT</lastBuildDate>
		<item>
			<title>Crazy Rebel: Викификация, оформление</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF117:google&amp;diff=9718&amp;oldid=prev</link>
			<description>&lt;p&gt;Викификация, оформление&lt;/p&gt;
&lt;a href=&quot;http://wiki2.linuxformat.ru/index.php?title=LXF117:google&amp;amp;diff=9718&amp;amp;oldid=9717&quot;&gt;(Различия между версиями)&lt;/a&gt;</description>
			<pubDate>Fri, 19 Feb 2010 20:51:44 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF117:google</comments>		</item>
		<item>
			<title>Crazy Rebel: викификация, оформление,</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF117:google&amp;diff=9717&amp;oldid=prev</link>
			<description>&lt;p&gt;викификация, оформление,&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''Hardcore Linux''' Проверь себя на крутом проекте для продвинутых пользователей&lt;br /&gt;
&lt;br /&gt;
==''GAE'': Создаем web-приложение==&lt;br /&gt;
&lt;br /&gt;
: С ''Google App Engine'' легко создавать масштабируемые приложения, не вникая в детали масштабирования. '''Дэн Фрост''' закинет программу в облака.&lt;br /&gt;
&lt;br /&gt;
''Google App Engine'' – платформа для разработки приложений в инфраструктуре Google. Как и другие масштабируемые платформы, она дает возможность разместить приложение на «облаке» ([[LXF108:CloudComputing|LXF108]]), не тратясь на содержание собственной серверной «фермы».&lt;br /&gt;
&lt;br /&gt;
В отличие от других решений по облачным вычислениям, ''Google App Engine'' применяется только для создания web-приложений. Вы можете управлять web-страницами, хранить информацию и взаимодействовать с внешними web-серверами, но не имеете доступа к файлам, дискам и базам данных, как было бы в обычной среде.&lt;br /&gt;
&lt;br /&gt;
Это может заставить вас изменить структуру приложения, но зато в вашем распоряжении будут очень мощные инструменты. ''Google App Engine'' поддерживает учетные записи Google, обработку изображений, огромные хранилища данных и взаимодействие с некоторыми службами Google посредством библиотеки ''Google Data Library''.&lt;br /&gt;
&lt;br /&gt;
Пока поддерживаются только приложения на языке ''Python''. Если это не ваш любимый язык программирования – «следите за рекламой»: в будущем появятся и другие.&lt;br /&gt;
&lt;br /&gt;
===Работа с ''App Engine''===&lt;br /&gt;
&lt;br /&gt;
Сначала поработаем локально, пользуясь сервером разработчика '''dev_appserver.py''', который имитирует реальную среду. Предоставляемая SDK, она включает работающий сервер, хранилище данных, псевдоучетные записи пользователей и все необходимое для создания приложения. Когда ваш новый шедевр Web 2.0 будет готов, разверните его на серверах Google с помощью скрипта '''appcfg.py''', который загрузит программу на вашу учетную запись в ''App Engine'' (создайте ее на сайте http://appengine.google.com).&lt;br /&gt;
&lt;br /&gt;
Пора установить среду разработки. Сначала позаботьтесь о наличии установленного ''Python 2.5'', после чего можно загрузить ''App Engine'' для вашей ОС с сайта http://code.google.com/appengine/downloads.html. В Linux, распакуйте архив и добавьте ''App Engine'' в переменную окружения '''$PATH''':&lt;br /&gt;
&lt;br /&gt;
 export PATH=$PATH:/path/to/google_appengine/&lt;br /&gt;
&lt;br /&gt;
Проверьте, что это работает, набрав ''dev_appserver.py'' в командной строке – вы должны увидеть обычную страницу справки. Затем создайте каталог для своего приложения:&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/myapp/&lt;br /&gt;
&lt;br /&gt;
Теперь создайте файл ключа для ''App Engine'': '''app.yaml'''. Он указывает ''App Engine'', в каком каталоге находится приложение и как обращаться с каждым его файлом. Заполните '''~/myapp/app.yaml''' таким содержимым:&lt;br /&gt;
&lt;br /&gt;
 application: mydemoapp&lt;br /&gt;
 version: 1&lt;br /&gt;
 runtime: python&lt;br /&gt;
 api_version: 1&lt;br /&gt;
 handlers:&lt;br /&gt;
  - url: /.*&lt;br /&gt;
    script: main.py&lt;br /&gt;
&lt;br /&gt;
Этот файл сообщает ''App Engine'', что имя приложения – '''mydemoapp''', а все запросы должны передаваться скрипту '''main.py'''. Для обработки любого URL-адреса можно задать любой скрипт и даже применить шаблоны для использования различных файлов:&lt;br /&gt;
&lt;br /&gt;
 url: /browse/(.*?)/&lt;br /&gt;
 script: /listings/\1.py&lt;br /&gt;
&lt;br /&gt;
Приведенная выше конфигурация передает все в скрипт '''main.py''', поэтому создайте этот файл и добавьте в него вывод традиционного сообщения:&lt;br /&gt;
&lt;br /&gt;
 print “Hello, World”&lt;br /&gt;
&lt;br /&gt;
Наше скромное приложение готово. Запустите сервер с помощью скрипта '''dev_appserver.py''' и откройте в браузере адрес http://localhost:8080.&lt;br /&gt;
&lt;br /&gt;
 dev_appserver.py ~/myapp/&lt;br /&gt;
&lt;br /&gt;
В ''App Engine'' допустимо большинство стандартных выражений ''Python''; исключения в основном касаются доступа к файловой системе. Попробуйте добавить методы и классы, создайте модуль, и вы увидите, что среда вам знакома.&lt;br /&gt;
&lt;br /&gt;
====Применение ''webapp''====&lt;br /&gt;
&lt;br /&gt;
В состав ''App Engine'' входит MV-каркас ''webapp'', позволяющий создавать хорошо структурированные приложения всего несколькими строками кода. Первая строка импортирует его, затем создается обработчик – это простой класс, унаследованный от '''webapp.RequestHandler''':&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 from google.appengine.ext import webapp&lt;br /&gt;
 class ExampleApp(webapp.RequestHandler):&lt;br /&gt;
   def get(self):&lt;br /&gt;
     self.response.out.write(‘Hello, well structured world’)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В обработчике есть два важных метода – '''get()''' и '''post()'''. Первый вызывается для всех запросов '''HTTP GET''', второй – для всех запросов '''HTTP POST'''. Следом за самим обработчиком запросов нужно зарегистрировать его в ''webapp'' и вызвать метод '''main() webapp''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 application = webapp.WSGIApplication(&lt;br /&gt;
   [(‘/’, ExampleApp)],&lt;br /&gt;
   debug=True)&lt;br /&gt;
   def main():&lt;br /&gt;
     run_wsgi_app(application)&lt;br /&gt;
     if __name__ == “__main__”:&lt;br /&gt;
       main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Снова откройте в браузере URL приложения, и вы увидите весьма невыразительную строку текста. Давайте улучшим ее, переместив сообщение в шаблон – создайте файл '''index.html''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Hi there!&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
 &amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;Hello from the template&amp;lt;/h1&amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем подключите шаблон, изменив метод '''get()''':&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 def get(self):&lt;br /&gt;
   template_vars = {}&lt;br /&gt;
   self.response.out.write(template.render(path, template_vars))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы хотите включить таблицы стилей, ''JavaScript'', изображения или любые другие статические файлы, нужно предупредить об этом '''app.yaml'''. Добавьте в него следующие строки перед обработчиком '''url: /.*''':&lt;br /&gt;
&lt;br /&gt;
 - url: /style&lt;br /&gt;
   static_dir: style&lt;br /&gt;
&lt;br /&gt;
Затем создайте каталог '''style''' и файл '''app.css''' и включите их в '''index.html''':&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;link rel=“stylesheet” href=”/style/app.css” type=“text/css”&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно добавить в CSS-файл какой-нибудь стиль – сделайте это сами.&lt;/div&gt;</description>
			<pubDate>Fri, 19 Feb 2010 12:53:32 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF117:google</comments>		</item>
	</channel>
</rss>