Google App Engine: обработчики и URL-адреса WSGI

Я новичок в GAE, и я создаю приложение с платформой webapp. Мне было интересно, когда вы устанавливаете обработчики в своем приложении.yaml и когда вы определяете их в своем WSGI?

сначала я думал, что у вас только один main.py основной файл под управлением WSGIApplication, но я замечаю, что если вы хотите использовать авторизацию GAE, вы определяете это в обработчиках. Это означает, что вы запускаете несколько WSGIApplications?

Я читал документы на " Требуется логин или Статус администратора " и, похоже, у них разные приложения для разных ролей.

может, что-то вроде этого?

-- general.py - логин:
-- user.py -вход: требуется
-- admin.py: - вход: admin

но может быть, это плохо для ваших ссылках тут WSGI повсюду?

Если я правильно помню, если вы запускаете django на GAE, вы указываете на один файл py и позволяете фреймворку обрабатывать все?

Я не хочу использовать Django еще так было интересно, есть ли у кого-нибудь указатели/лучшие практики о том, как делать url/hanlders с webapp?

1 ответов


любой метод URL-маршрутизации является приемлемым.

app.маршрутизация URL на основе yaml
Если вы можете легко структурировать приложение для использования app.маршрутизация yaml (и авторизация), тогда стоит попробовать: это будет меньше кода, который вам придется отлаживать, тестировать и поддерживать.

вот пример (из Google) с несколькими точками входа:http://google-app-engine-samples.googlecode.com/svn/trunk/gdata_feedfetcher/

производительность должно быть лучше с приложением.авторизация yaml: ваш скрипт Python не нужно будет запускать, чтобы определить, является ли пользователь администратором сайта.

один URL-таблица сопоставления
Если вашему приложению требуется что-то помимо базовой URL-маршрутизации и авторизации, у вас может оказаться сравнительно разреженное приложение.yaml и использование более крупной таблицы сопоставления URL.

например, вы хотите отобразить страницу для всех пользователей, но дополнительно хотите, чтобы ссылка "вход" отображалась для администратора. этот код (для простого блога) использует эту структуру.