def add_link(request, topic_slug): topic = Topic.objects.get(slug=topic_slug) def render_page(): params = {'topic_name': topic.name} return render(request, 'topics/add_link.html', params) if request.method == 'POST': url = request.POST.get('url') description = request.POST.get('description') if not Link.objects.filter(url=url).exists(): link = Link(url=url, description=description) link.topic = topic link.save() return HttpResponseRedirect( reverse('topics.views.view_topic', args=(topic.slug, ))) else: return render_page()
def _bing_api_call(search_term): auth = str( base64.b64encode( b'GADjTrr1YGG7uFx58yNvkuJNUTEN7s6++SnOiOnwaYM:GADjTrr1YGG7uFx58yNvkuJNUTEN7s6++SnOiOnwaYM' ), 'utf-8') header = {'Authorization': 'Basic ' + auth} url = 'https://api.datamarket.azure.com/Bing/Search/Web?$format=json' data = {'Query': "'" + search_term + "'"} data = urllib.parse.urlencode(data) request = urllib.request.Request(url + '&' + data, None, header) request_open = urllib.request.urlopen(request) response = request_open.read() request_open.close() parsed = json.loads(response.decode('utf-8')) links = [] for entry in parsed['d']['results']: link = Link(url=entry['Url'], description=entry['Description']) links.append(link) return links[:10]