Мне присвоили создать УСПОКОИТЕЛЬНОЕ приложение Android для существующего веб-сервиса, который создается с помощью Django.
Моя текущая дизайнерская идея состоит в том, чтобы иметь приложение Android, получают версию JSON данных, которые обычно отправлялись бы в шаблон Django на каждом URL. Таким образом, мое представление было бы похоже:
#The site stores and organizes user's medical experiences by allowing search of
# what treatments have been effective for a particular condition
treatment_for_condition = {'treatment' : treatment, 'condition' : condition}
if send_as_json :
return HttpResponse(json.dumps(treatment_for_condition),mimetype='application/json')
else:
t = loader.get_template('results.html')
return HttpResponse(t.render(treatment_for_condition))
Существует ли изящный способ установить "send_as_json" переменную? Я рассматриваю два в соответствии со стратегиями:
1) Добавление спецификатора в конец всех URL так, чтобы/condition/treatment/возвратил веб-страницу и/condition/treatment/? json=true возвратит объект JSON
2) Создание субдомена json.treatmentreport.com, который установит "send_as_json" переменную на истинный, затем отправьте тому же представлению, как будто это было в www домене.
Любое из этих решений может быть реализовано изящно? Или я иду об этом полностью неправильным путем?
Я прочитал ваш вопрос и думаю, что вместо того, чтобы предлагать методы исправления вашей существующей настройки, я постараюсь сначала ответить на заголовок вашего вопроса:
«Какой элегантный способ создавать URL-адреса доступа к приложениям для существующего веб-приложения? »
Ознакомьтесь с django-Piston
Piston - это относительно небольшое приложение Django, которое позволяет вам создавать интерфейсы прикладного программирования (API) для ваших сайтов.
Он имеет несколько уникальных особенностей:
- Связан с внутренними механизмами Django.
- Из коробки поддерживает OAuth (а также базовую / дайджест-аутентификацию или пользовательскую аутентификацию).
- Не требует привязки к моделям, позволяя использовать произвольные ресурсы.
- Говорит JSON, YAML, Python Pickle и XML (и HATEOAS.) Поставляется с удобной многоразовой библиотекой на Python
- Уважает и поощряет правильное использование HTTP (коды состояния, ...)
- Имеет встроенную (необязательную) проверку формы (через Django), регулирование и т. Д.
- Поддерживает потоковая передача с небольшим объемом памяти.
- Держитесь подальше от вас.