редактировать : краткость и уточнение ответа
В вашем случае строка urlpatterns += url(r'', include('wiki.urls'))
добавляет URL-путь для Django, чтобы оценить для какого-то приложения «вики». Исходный код для файла urls.py, если кто-то еще смотрит на этот вопрос, это здесь .
В wiki.urls.py
# line 51
def get_urls(self):
... # gets the root urls & adds all other url patterns
return urlpatterns
# line 249
def get_pattern(app_name="wiki", namespace="wiki", url_config_class=None):
... # warnings etc...
if url_config_class is None:
url_config_classname = getattr(settings, 'URL_CONFIG_CLASS', None)
if url_config_classname is None:
url_config_class = WikiURLPatterns
else:
... # more warning etc...
url_config_class = import_string(url_config_classname)
urlpatterns = url_config_class().get_urls()
return urlpatterns, app_name, namespace
и в wiki.conf.settings мы находим
]
# line 273
#: Dotted name of the class used to construct urlpatterns for the wiki.
#: Default is wiki.urls.WikiURLPatterns. To customize urls or view handlers,
#: you can derive from this.
URL_CONFIG_CLASS = getattr(
django_settings,
'WIKI_URL_CONFIG_CLASS',
None)
Итак, вы действительно нашли правильный файл (src.wiki.urls.py). Из приведенных выше сегментов видно, что conf.settings по умолчанию определяет URL_CONFIG_CLASS как None
. Затем if None
url conf определяет класс как WikiURLPatterns (строка 249) и включает в себя URL-адреса, определенные в get_urls (строка 51). Здесь, в get_urls (и предыдущих строках), вы захотите добавить свой собственный код в другие шаблоны URL, представления и приложения.
Однако, эти настройки становятся устаревшими, см. здесь в документации. Итак, копаясь в Git для проекта, вы можете увидеть, что они переопределили это для современного Django. Итак, в wiki.sites.py смотрите строку 75 и далее, чтобы узнать, как создаются экземпляры URL.
Вы также спросили, где была регистрация? Проверьте строку 94 в wiki.sites.py
Проблема здесь состоит в том, что много веб-дискуссий по поводу этой проблемы является годом или более старый. Я работаю посредством этого того же исследования прямо сейчас, и это - то, что я изучил сегодня.
статья This IBM Developer Works с августа 2008 Jorge Rasillo и Mike Burr показывает, как сделать фронтенд Flex / УСПОКОИТЕЛЬНОЕ приложение бэкенда (примеры в PHP и Groovy). Хорошая статья. Так или иначе вот устранение:
// Flex doesn't know how to generate an HTTP DELETE.
// Fortunately, sMash/Zero will interpret an HTTP POST with
// an X-Method-Override: DELETE header as a DELETE.
deleteTodoHS.headers['X-Method-Override'] = 'DELETE';
, Что происходит здесь? веб-сервер IBM прерывает и интерпретирует "POST с, УДАЛЯЮТ" как УДАЛЕНИЕ.
Так, я вырыл далее и нашел этот сообщение и обсуждение с Don Box (один из исходных парней SOAP). По-видимому, это - довольно стандартное поведение начиная с некоторых браузеров, и т.д. не поддерживайте ПОМЕЩЕННЫЙ и УДАЛЯЙТЕ, и обходное решение, которое было вокруг некоторое время. Вот отрывок, но существует намного больше обсуждения.
, "Если бы я создавал клиент GData, я честно задаюсь вопросом, почему я потрудился бы использовать, УДАЛЯЮТ и ПОМЕЩАЮТ методы вообще, учитывая, что X-HTTP-Method-Override собирается работать в большем количестве случаев/развертывания".
Мой устранять из этого то, что, если Ваша веб-сторона поддерживает этот заголовок X-Method-Override, то можно использовать этот подход. Комментарии Don Box заставляют меня думать, что это довольно хорошо поддерживается, но я еще не подтвердил это.
Другая проблема возникает вокруг способности прочитать заголовки ответа HTTP. Снова, от сообщение в блоге в 2007 Nathan de Vries , мы видим обсужденный. Он развил то сообщение в блоге и обсуждение с его собственным комментарием:
"Единственное изменение на веб-передней стороне - то, что более новые версии Flash player (конечно, предоставленные бетой Flex 3) теперь поддерживают responseHeaders свойство на экземплярах HTTPStatusEvent".
я надеюсь, что означает, что это - надуманный вопрос теперь.
Путем я справился, это в прошлом должно использовать прокси PHP, который имеет дело с удаленными вызовами веб-сервиса и возвращает RTU JSON клиенту..
REST является большим количеством идеологии, чем что-нибудь. Вы переходите к остальным презентации, и у них есть coolaide фармацевты.
Для приложений Flex, прокручивая стек в соединении к BlazeDS и маршалинге данных AMF более удобно и более производителен.
На самом деле были, уже используют Flex с Платформой Стиля Отдыха. Как mbrevort уже упомянул PUT, и УДАЛИТЕ методы, не может непосредственно использоваться. Вместо этого мы делаем ПОМЕЩЕННЫЙ через POST, и для УДАЛЯЮТ, мы используем Получение на ресурсе с параметром URL как? action=delete.
Это не 100%-й стиль Отдыха, таким образом, я не уверен, если это работает с реализацией JSR 311. Вы будете нуждаться в некотором flexbility на стороне сервера к обходному решению ПОМЕЩЕННЫЙ и УДАЛЯТЬ ограничения.
Относительно обработки ошибок, мы реализовали ошибочный сервис. В случае серверной ошибки приложение Flex может запросить этот ошибочный сервис для получения фактического сообщения об ошибке. Это также намного более гибко, чем просто отображение кодов возврата HTTP к статическим сообщениям.
Однако благодаря сценариям ECMA Flex, работающего с XML, базировался, сервисы REST очень легко.
Да, я смог использовать POST и заголовки доступа с этим компонентом:
Я работал над заменой с открытым исходным кодом для Компонента HTTPService, который полностью поддерживает REST. Если заинтересовано, можно найти бета-версию (исходный код, и/или скомпилированный Flex совместно использовал библиотеку времени выполнения), и инструкции здесь:
Существуют определенные недостатки способности Flex действовать как чистый УСПОКОИТЕЛЬНЫЙ клиент.
комментарии ниже от этого блог :
проблемой является класс HTTPService, имеет несколько основных ограничений:
- Только ДОБИРАЮТСЯ, и методы POST поддерживаются из поля (если Вы не используете FDS и устанавливаете атрибут useProxy на истинный)
- Не способный установить заголовки запроса и нет никакого доступа к заголовкам ответа. Поэтому я не могу получить доступ к органу по ответу в случае ошибки.
- Это HTTPService получает код состояния что-либо другие 200, это рассматривает ошибку. (событие 201, ай!!). FaultEvent doesn’t предоставляет информацию о коде состояния любой орган по ответу. Клиент Flex будет понятия не иметь, что пошло не так, как надо.
Matt Raible также дал , хорошая презентация Лежит на направляющих, Grails, GWT и Flex, которые имеют некоторые хорошие ссылки, связанные от него.
, Выполнимо ли это или не действительно зависит от сколько Вашего согласного для работы вокруг путем проксирования, и т.д.
Как многие указали HTTPService
, немного упрощенно и не делает всего, что Вы хотите сделать. Однако HTTPService
просто сахар сверху эти flash.net.*
классы как URLLoader
, URLRequest
и URLRequestHeader
. Используя их можно собрать большинство Запросов HTTP.
Когда дело доходит до поддержки других методов, чем ДОБИРАЮТСЯ и POST, проблема главным образом заключается в этом, некоторые браузеры (например, Safari) не поддерживают их, и Flash player полагается на браузер для всего, что это объединяет в сеть.
Я работаю правильно теперь на приложении, которое полагается в большой степени на вызовы REST между Flex и Сервлетами Java и JavaScript. Мы обходим проблему кода ошибки ответа путем установления конвенции < идентификатор состояния = "XXX" имя = "YYYYYY" > блок, который возвращается на ошибку с ошибочными идентификаторами, которые примерно отображаются на коды Ошибки HTTP.
Мы обходим ограничения сценариев перекрестного сайта при помощи Сервлета Java как Прокси HTTP. Вызовы к прокси (то, которое работает на том же сервере, который служит остальной части содержания, включая содержание Flex, отправляет запрос к другому серверу, затем передает ответ обратно исходной вызывающей стороне.
Может быть, новый Flex 4 - это ответ http://labs.adobe.com/technologies/flex4sdk/
RestfulX решил большинство / все проблемы REST с Flex. Он поддерживает Rails / GAE / Merb / CouchDB / AIR / WebKit, и я уверен, что было бы несложно подключить его к вашей реализации Java.
Дима также интегрировал в него библиотеку AS3HTTPClient.
Проверить это вон!
Короткий ответ - да, вы можете сделать RESTful с Flex. Вы просто должны работать с ограничениями Flash-плеера (лучше с последними версиями) и содержащего HTTP-стек браузера.
Мы занимаемся RESTful разработкой клиента в Flex более года после решения основной заголовок HTTP-запроса и отсутствие PUT и DELETE через Rails-esque ?_method= подход. Возможно, тактично, но это позволяет сделать работу.
Я заметил некоторые заголовки боли в старом посте блога на http://verveguy.blogspot.com/2008/07/truth-about-flex-httpservice.html
Книга Flexible Rails может оказаться полезной - это отличный ресурс о том, как использовать Flex в качестве клиента RESTful. Хотя он ориентирован на использование Flex с фреймворком Rails, я считаю, что эти концепции применимы к любому фреймворку RESTful. Я использовал эту книгу, чтобы быстро освоить Flex с REST.
Flex поддерживает REST в лучшем случае слабо. Я потратил много времени на создание прототипа, поэтому знаю большинство проблем. Как упоминалось ранее, из коробки есть поддержка только GET и POST. На первый взгляд кажется, что вы можете использовать конфигурацию прокси в LiveCycle Data Services или Blaze, чтобы получить поддержку PUT и DELETE. Однако это подделка. Запрос, исходящий из вашего приложения Flex, по-прежнему будет POST. Прокси-сервер преобразует его в PUT или DELETE на стороне сервера, чтобы обмануть ваш серверный код. Есть и другие проблемы. Есть мнение, что это лучшее, что могла придумать Adobe. После моей оценки мы решили пойти в другом направлении.