示例#1
0
def create(request):
    request_json = json.loads(request.body.decode('utf-8'))
    print(request_json)
    if 'url' in request_json and len(request_json['url'].strip()) > 0:
        val = URLValidator()
        try:
            long_url = url_normalize(request_json['url'].strip())
            val(long_url)
            existing_link = Link.objects.filter(url=long_url)
            if existing_link.count() == 0:
                link = Link(url=long_url, date_created=timezone.now())
                link.save()
            else:
                link = existing_link[0]
            return JsonResponse({
                'short_url':
                request.build_absolute_uri(
                    reverse('shortener:goto', args=[link.short_url()]))
            })
        except ValidationError:
            return JsonResponse({'error': 'URL is not valid.'}, status=400)
    else:
        return JsonResponse({'error': 'No URL given.'}, status=400)