Джанго и веб-приложение, живущие вместе на GAE? - PullRequest
4 голосов
/ 18 сентября 2009

Возможно ли иметь обе доступные рамки? Чтобы я мог иметь

from google.appengine.ext import webapp
from django.template.loader import render_to_string

class MainPage(webapp.RequestHandler):

    def get(self):
        self.response.out.write(render_to_string('some.template'))

и

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world")

работает сопоставлен с разными URL?

EDIT: Вопрос в основном сводится к тому, как мне реализовать

urlpatterns = [
               # webapp-style handler
               (r'/webapp', views.MainPage),
               # django
               (r'/django', views.hello),
              ]

Ответы [ 3 ]

4 голосов
/ 18 сентября 2009

Конечно - до тех пор, пока вы не используете 0.9.6 в одном подпрограмме и 1.0 (через вызов use_library) в другом. Просто сопоставьте регулярные выражения URL с отдельными обработчиками в app.yaml, и все готово.

1 голос
/ 18 сентября 2009

Django - это просто набор библиотек, поэтому, в некотором смысле, вы определенно можете запустить его в Google App Engine (или любом WSGI-совместимом веб-контейнере). Однако это не сработает, если вы попытаетесь свободно смешать две структуры, поскольку каждая из них ожидает полного контроля над циклом запроса / ответа и имеет различные абстракции для жизненного цикла запроса, управления сеансом и т. Д.

Вы можете использовать Django для кодирования приложений GAE, написав свой собственный модуль обработчика WSGI. В этой статье приведено краткое изложение того, как одно приложение Django отвечает на все запросы для вашего экземпляра GAE.

Смешивание двух в одном запросе не сработает, хотя вы могли бы использовать библиотеку шаблонов Django (или клон типа Jinja ), если вы просто хотите фронт -конец заимствовать из синтаксиса Джанго. Кроме того, вы сможете настроить обработчики приложений Google и конечные точки Django под разными URL-адресами, расширив диспетчер WSGI в приведенной выше статье. Однако я хотел бы задать вопрос, стоило ли пытаться поддерживать две совершенно разные веб-фреймворки для одного сайта? Дополнительная сложность.

0 голосов
/ 19 сентября 2009

Да! На самом деле, если вы зайдете на сайт GAE, учебник «Начало работы» показывает именно это! Обе библиотеки встроены, поэтому с ним невероятно легко начать работу.

Google App Engine: начало работы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...