Детали программы:
Версия: 0.3.1
Дата загрузки: 20 Feb 15
Тип распространения: Бесплатная
Популярность: 3
jsonate библиотека Django, которые могут сделать что-либо в JSON.
Установка
& NBSP; 1. Установите LIB с пип:
& NBSP; & NBSP; & NBSP; пункт установить jsonate
& NBSP; & NBSP; & NBSP; **- ИЛИ -**
& NBSP; & NBSP; & NBSP; Поставьте "jsonate" каталог где-то в пути питона
& NBSP; 2. Добавить "jsonate" для ваших установленных приложений (в settings.py файл)
Использование
В шаблонах
& NBSP; & NBSP; & NBSP; {% Нагрузки jsonate_tags%}
& NBSP; & NBSP; & NBSP; {{Ничего | jsonate}}
Это особенно полезно для встраивания данных в атрибуты в данных для
использовать в языке JavaScript библиотек, как JQuery (примечание jsonate-атр идентичен jsonate | побег):
& NBSP; & NBSP; & NBSP;
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; <Скрипт>
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ...
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; user_data = $ ("# пользователя виджет") данные ("пользователь").
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ...
& NBSP; & NBSP; & NBSP; Скрипт>
Или просто использовать его непосредственно в JavaScript ...
& NBSP; & NBSP; & NBSP; <Скрипт>
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; вар user_data = {{Пользователь | jsonate}};
& NBSP; & NBSP; & NBSP; Скрипт>
В Python
& NBSP; & NBSP; & NBSP; от jsonate импорта jsonate
& NBSP; & NBSP; & NBSP; # Querysets
& NBSP; & NBSP; & NBSP; JSON = jsonate (User.objects.all ())
& NBSP; & NBSP; & NBSP; # значения
& NBSP; & NBSP; & NBSP; JSON = jsonate (User.objects.values ())
& NBSP; & NBSP; & NBSP; # Модель случаи
& NBSP; & NBSP; & NBSP; JSON = jsonate (User.objects.get (электронная почта = "my_email@gmail.com"))
Jsonate оказывается DateTimes в формат для легкого изо разбора в JavaScript
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; # Отформатирован ответ для удобства чтения ...
& NBSP; & NBSP; & NBSP; >>> Печати jsonate (User.objects.all () [0])
& NBSP; & NBSP; & NBSP; {
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "Имя пользователя": "asdfasdf",
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "first_name": "ASDF",
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "last_name": "ASDF",
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "is_active" ложь,
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "Электронная почта": "asdf@example.com",
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "is_superuser" ложь,
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "is_staff" ложь,
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "last_login": "2011-08-22T19: 14: 50,603531",
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "ID": 5,
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "date_joined": "2011-08-22T19: 14: 50,220049"
& NBSP; & NBSP; & NBSP; }
Поля / Исключить параметры
Вы можете указать, какие поля должны быть по частям в мета вариантов
Ваши модели. Это влияет на сериализацию экземпляров модели, и querysets,
так же, как администратора!
пример
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; класс MyModel (models.Model):
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; normal_info = models.CharField (max_length = 10)
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; sensitive_info = models.CharField (max_length = 10)
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; класс Мета:
jsonate_exclude = ('sensitive_info ",)
# Это будет также работать:
# Jsonate_fields = ('normal_info ",)
По умолчанию модель пользователя в `django.contrib.auth.models` это обезьяна-исправлена
исключить поле пароля при сериализации querysets или экземпляров
Если вы хотите, чтобы указать, какие поля будут упорядочены на основе каждого случая,
использовать `значения ()` вместо этого. вот так
& NBSP; & NBSP; & NBSP; >>> Jsonate (User.objects.values ("Имя пользователя", "пароль"))
& NBSP; & NBSP; & NBSP; ... [{"Имя пользователя": "someuser", "пароль": "SHA1 $ f26b2 $ d03a6123487fce20aabcdef0987654321abcdef0"}] "
Примечание: это, очевидно, не является реальным пароль или соль :)
The JsonateResponse
`JsonateResponse` подкласс HttpResponse, что работает почти
то же самое, за исключением того, что он принимает любой объект, поскольку это данные, а не просто
струны. Она возвращает результирующий JSON, как MimeType "приложения / JSON"
пример:
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; от jsonate.http JsonateResponse импорта
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def my_view (запрос):
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ...
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; вернуться JsonateResponse (request.user)
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; # Ответ содержит:
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; {"имя пользователя": "asdfasdf", "first_name": "ASDF", "last_name": "ASDF", "is_active" ложь ", по электронной почте": "asdf@example.com", "is_superuser" ложь ", is_staff "ложь", last_login ":" 2011-08-22T19: 14: 50,603531 "," ID ": 5," date_joined ":" 2011-08-22T19: 14: 50,220049 "}
, декоратор
Параметр `JsonateResponse` велик, но жизнь может стать еще проще!
`@ jsonate_request` декоратора (вдохновленный ajax_request декоратора
В Django-раздражает) будет пытаться сериализации что-нибудь вид прибыли
(через JsonateResponse) вернуть его в HttpResponse с MimeType
"Применение / JSON"
Единственное, что он * не * пытаться сериализации является HttpResponse.
пример:
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; jsonate_request
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Def my_view (запрос):
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Форма = MyForm (request.POST)
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; если form.is_valid ():
form.save ()
вернуться HttpResponseRedirect ("/ некоторые / путь /")
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; другой:
вернуться form.errors
С действительным входа, HttpResponseRedirect проходит через нетронутыми.
Если есть ошибки форма ответ возвращается глядя что-то вроде
это:
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; {
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "Имя пользователя": [
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "Это имя пользователя уже занято"
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ],
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "Эл. адрес": [
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "Пожалуйста, введите действительный адрес электронной почты."
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ]
& NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; }
Требования
- Python
Комментарии не найдены