Google Code предлагается на следующих языках: English – Español – 日本語 – 한국어 – Português – Pусский – 中文(简体) – 中文(繁體)
Чтобы пользователи могли отправлять собственные приветствия, необходим способ обрабатывать информацию, переданную пользователем через веб-форму. Инфраструктура webapp упрощает обработку данных форм.
Замените содержание helloworld/helloworld.py следующим:
import cgi
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
self.response.out.write("""
<html>
<body>
<form action="/sign" method="post">
<div><textarea name="content" rows="3" cols="60"></textarea></div>
<div><input type="submit" value="Sign Guestbook"></div>
</form>
</body>
</html>""")
class Guestbook(webapp.RequestHandler):
def post(self):
self.response.out.write('<html><body>You wrote:<pre>')
self.response.out.write(cgi.escape(self.request.get('content')))
self.response.out.write('</pre></body></html>')
application = webapp.WSGIApplication(
[('/', MainPage),
('/sign', Guestbook)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
Перезагрузите страницу для появления формы и попытайтесь отправить сообщение.
В этой версии есть два обработчика: MainPage, сопоставленный с URL /, отображает веб-форму. Guestbook, сопоставленный с URL /sign, отображает данные, переданные с помощью веб-формы.
Обработчик Guestbook содержит метод post() вместо метода get(). Это связано с тем, что форма, отображаемая обработчиком MainPage, использует для отправки данных формы HTTP-метод POST (method="post"). Если по какой-то причине вам нужен один обработчик для выполнения действий GET и POST на одном URL, можно определить метод для каждого действия в одном классе.
Код метода post() получает данные формы из self.request. Перед их отображением пользователю он использует метод cgi.escape() для преобразования специальных HTML-символов в эквивалентные коды символов. cgi – это модуль стандартной библиотеки Python; подробнее см. документацию по cgi.
Примечание. Среда App Engine включает всю стандартную библиотеку Python 2.5. Однако допустимы не все действия. Приложения App Engine работают в ограниченной среде, позволяющей App Engine масштабировать их безопасным способом. Например, вызовы нижнего уровня к операционной системе, сетевые операции и некоторые операции файловой системы запрещены и при попытке выполнения приведут к ошибке. Подробнее см. раздел Среда выполнения Python.
Теперь, когда мы можем принимать у пользователя информацию, ее нужно где-то размещать и как-то получать оттуда.
Переходите к разделу Использование хранилища данных.