Попробуйте использовать службу ресурсов для использования flickr jsonp:
var MyApp = angular.module('MyApp', ['ng', 'ngResource']);
MyApp.factory('flickrPhotos', function ($resource) {
return $resource('http://api.flickr.com/services/feeds/photos_public.gne', { format: 'json', jsoncallback: 'JSON_CALLBACK' }, { 'load': { 'method': 'JSONP' } });
});
MyApp.directive('masonry', function ($parse) {
return {
restrict: 'AC',
link: function (scope, elem, attrs) {
elem.masonry({ itemSelector: '.masonry-item', columnWidth: $parse(attrs.masonry)(scope) });
}
};
});
MyApp.directive('masonryItem', function () {
return {
restrict: 'AC',
link: function (scope, elem, attrs) {
elem.imagesLoaded(function () {
elem.parents('.masonry').masonry('reload');
});
}
};
});
MyApp.controller('MasonryCtrl', function ($scope, flickrPhotos) {
$scope.photos = flickrPhotos.load({ tags: 'dogs' });
});
Шаблон:
<div class="masonry: 240;" ng-controller="MasonryCtrl">
<div class="masonry-item" ng-repeat="item in photos.items">
<img ng-src="{{ item.media.m }}" />
</div>
</div>
Сообщение об ошибке в значительной степени говорит обо всем. Проблема, скорее всего, заключается в следующем:
id_data = data_dic["id"]
...
return id_data
Вы возвращаете id_data
, который является int
, но вам нужно вернуть любой из типов, указанных в сообщении об ошибке. Попробуйте это так:
return jsonify({'id': id_data})
РЕДАКТИРОВАТЬ: Чтобы ответить на последующий вопрос в комментарии. Вы получаете пустой словарь при печати request.form
(как переменная rf
), потому что вы фактически не публикуете данные формы в функцию представления, но отправляете тело JSON в запросе POST. Чтобы получить данные, вы должны использовать request.get_json()
вместо request.form
.