def home(request): form = UrlForm() if request.method=="POST": form = UrlForm(request.POST) if form.is_valid(): if form.is_valid(): url = form.cleaned_data['original_url'] url_set = UrlTable.objects.filter(original_url = url) if not url_set: short_url=str(random_string(5)) p = UrlTable(original_url = url,shortened_url = short_url) p.save() url_set = UrlTable.objects.all() return render(request,'url.html',{ 'form': form , 'urlset': url_set } )
def main(request, **kwargs): if request.method == "POST": form = UrlForm(request.POST) if form.is_valid(): url = Url() url.original_url = form.cleaned_data['url'] url.save() c = { "form": form, "url": url, } return render_to_response("main.html", c, context_instance=RequestContext(request)) else: c = { "form": form, } return render_to_response("main.html", c, context_instance=RequestContext(request)) else: form = UrlForm() c = { "form": form, } return render_to_response("main.html", c, context_instance=RequestContext(request))
def save_url(request): form = UrlForm(request.POST) if form.is_valid(): long_u = request.POST.get('long_url').strip().strip('/') short_url = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(6)) while Urls.objects.filter(short_url=short_url): short_url = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(6)) used_protocol = 'http://' protocols = ['http://', 'https://', 'ftp://'] for p in protocols: if p in long_u: used_protocol = p long_u = long_u.replace(used_protocol, '') Urls.objects.create(protocol=used_protocol, long_url = long_u, create_date=time.strftime("%Y %b %d"), short_url=short_url) return redirect(index) else: context = {'urls_data': Urls.objects.filter().order_by('-id'), 'server_url': '127.0.0.1:8000?s=', 'message': 'Oops, Your URL is not valid. Please, try again...'} return render(request, 'index.html', context)
def photocraig(request): if request.method == 'POST': form = UrlForm(request.POST) if form.is_valid(): try: if not("craigslist.org" in str(request.POST['url'])): return HttpResonse("Bad url") response = craigslist.parseListings(request.POST['url']) form = UrlForm() print 'NEXT: ' + str(response['next']) return render_to_response('janklist.html', {'form': form, 'listings': response['listings'], 'next': response['next']}, context_instance=RequestContext(request)) except Exception, e: print e return HttpResponse("Bad url") else: return HttpResponse("Bad form data")
def home(request): #Home page context = {} if not check_words_load(): context['msg'] = 'First, load the words.' if request.method == 'POST' and check_words_load(): form = UrlForm(request.POST) if form.is_valid(): short_url = generate_url(form.cleaned_data['url']) context['short_url'] = short_url context['result'] = True else: form = UrlForm() context['form'] = form return render(request, 'home.html', context)
def post(self, request, *args, **kwargs): data = { "start_url": request.POST.get('start_url'), "end_url": request.POST.get('end_url') } f = UrlForm(data) if f.is_valid(): f.send_maze_doors(data) return HttpResponseRedirect(self.success_url) errors = { 'start_url': f.errors.get('start_url', ''), 'end_url': f.errors.get('end_url', '') } return render(request, self.template_name, {"errors": errors})
def index(request): if request.method == 'POST': # обрабатываем POST запрос, т.е. добавления url raw_data = UrlForm(request.POST) if raw_data.is_valid(): data = raw_data.cleaned_data timestamp = timezone.now() # отметка времени original_url = data['original_url'] # получаем введенный в форму url url_add = UrlList.objects.create(original_url=original_url, date_add=timestamp, clicks=0) # пишем в базу введенный url, время добавления и количество кликов, которые пока равны нулю request_url = request.get_raw_uri() # получаем url запроса short_url = '{0}?s={1}'.format(request_url, encode(url_add.id)) # формируем короткий url из url запроса и закодированного id записи url_add.shorten_url = short_url # добавляем короткий url в базу url_add.save() # сохраняем return redirect(index) # добавление url в базу окончена, перенаправляем на заглавную страницу # если введенный url прошел валидацию на форме html, но не прошел в обработке POST запроса, то выводим сообщение пользователю о некорректном url urls = UrlList.objects.filter() context = {'url_form': UrlForm(), 'urls': urls, 'message': 'You pasted a bad URL'} return render(request, 'form.html', context) else: # обрабатываем GET запрос if request.GET.get('s'): # если в GET запросе существет ключ s, значит пользователь нажал на короткий url - обрабатываем его s = request.GET.get('s') # получаем закодированный id ''' Если пользователь вручную введет GET запрос в адресной строке браузера с произвольным 's', то приложение может обратиться к базе с несуществующим id, что вызовет exception. Ловим такие обращения с помощью try-except и выводим соответствующее сообщение. ''' try: url_id = decode(s) # декодируем id url = UrlList.objects.get(id=url_id) # получаем объект url из базы timestamp = timezone.now() # отметка времени url.date_click = timestamp # дата и время клика по короткому url url.clicks += 1 # увеличиваем счетчик кликов по короткому url url.save() # сохраняем изменения в базу except Exception: # ловим ошибки обращения к несуществующему id в базе request_url = request.get_raw_uri() # получаем url запроса return HttpResponse('Page "{0}" does not exist.'.format(request_url)) # возвращаем пользователю сообщение, что такого url нет return redirect(url.original_url) # выносим редирект на оригинальный url из try блока, т.к. в нем не считаются клики и timestamps else: # если в GET запросе нет ключа s, значит пользователь заходит на заглавную страницу urls = UrlList.objects.filter() # получаем все записи в базе context = {'url_form': UrlForm(), 'urls': urls} return render(request, 'form.html', context) # рисуем пользователю заглавную страницу
def main(request, **kwargs): if request.method == "POST": form = UrlForm(request.POST) if form.is_valid(): url = Url() url.original_url = form.cleaned_data['url'] url.save() c = { "form": form, "url": url, } return render_to_response("main.html", c, context_instance=RequestContext(request)) else: c = { "form": form, } return render_to_response("main.html", c, context_instance=RequestContext(request)) else: form = UrlForm() c = { "form": form, } return render_to_response("main.html", c, context_instance=RequestContext(request))