def todo(request): salida = "" if request.method == "POST": nombre = request.POST["larga"] #pongo el http o https si hace falta if not nombre.startswith("http"): nombre = "http://" + nombre try: fila = Urls.objects.get(larga=nombre) salida += "<b>ERROR: la url '" + fila.larga + "' esta acortada ya en: " + str(fila.id) + "</b><br><br>" except Urls.DoesNotExist: salida += "Guardada correctamente la url '" + str(nombre) + "'<br><br>" #Guardo en la BD p = Urls(larga=nombre) p.save() salida += "<form action='' method='POST'>\n" salida += "Url a acortar: <input type='text' name='larga'>" salida += '<input type="submit" value="Acortar"><br>' salida += "<br><hr>Estas son las urls acortadas:<ul>" lista = Urls.objects.all() for fila in lista: salida += "<li>" + str(fila.id) + "->" + fila.larga + " " salida += "</ul>" return HttpResponse(salida)
def acorta(request,resourceName): response = "welcome to urlshort" + "<br/>" urlsList = Urls.objects.all() response += getUrls(urlsList) + "<br/>" if request.method == 'POST': if request.POST['name'] == "": return HttpResponseBadRequest("EMPTY POST") elif not request.POST['name'].startswith("http://") and not request.POST['name'].startswith("https://"): page = "http://" + request.POST['name'] newUrl = Urls(name=page) newUrl.save() response += "--Page: <a href=" + request.POST['name'] + ">" + request.POST['name'] + "</a></p>\n" response += "-- Url short: <a href=" + str(newUrl.id) + ">" + str(newUrl.id) + "</a></p>" elif request.method == 'GET': try: content = Urls.objects.get(name=resourceName) response += content.name except Urls.DoesNotExist: response += getform() return HttpResponse(response)
def formulario(request): salida = "" if request.method == "POST": if request.body == "": salida += "Error, debe escribir una url" else: cuerpo = request.body.split('valor=')[1] if cuerpo.find("http") == -1: cuerpo = "http://" + cuerpo else: cuerpo = cuerpo.replace('%3A%2F%2F', '://') try: fila = Urls.objects.get(larga=cuerpo) except Urls.DoesNotExist: fila = Urls(larga=cuerpo) fila.save() salida += "Url larga: " + "<a href='" + fila.larga salida += "'>" + fila.larga + "</a>" + "</br>" salida += "Url corta: " + "<a href='" + str(fila.id) salida += "'>" + str(fila.id) + "</a>" + "</br>" elif request.method == "GET": salida += '<form action="" method="POST">' salida += 'Introducir url : <input type="text" name="valor">' salida += '<input type="submit" value="Enviar">' salida += '</form>' lista = Urls.objects.all() salida += "</br></br>Las urls que hay son:<ul>" for fila in lista: salida += "<li> Url larga: " + fila.larga salida += " --> Url Corta: " + str(fila.id) salida += "</ul>" return HttpResponse(salida)
def shortener(url): hashed_url = hashlib.md5(url.encode()).hexdigest()[:8] Urls(hashed_url=hashed_url, full_url=url) short_url = f'{SERVER_URL}/{hashed_url}' return short_url