У меня есть 3 функции. Каждый из них имеет одинаковую строку кода:
if request.method == "POST" and 'url' in request.POST:
Вот функции:
def checkurl(request):
if request.method == "POST" and 'url' in request.POST:
url = request.POST.get('url', '')
url_response = ""
if not url.startswith('http://') and not url.startswith('https://'):
url_get = "http://" + url
url_response = requests.get(url_get, headers=headers, allow_redirects=False)
url_status_code = url_response.status_code
if url_status_code == 200:
url = url_get
return url
else:
url = "https://" + url
return url
return url
def netloc(request):
url = checkurl(request)
global url_scheme
global url_port
global url_netloc
global url_path
if request.method == "POST" and 'url' in request.POST:
url_parsed = urlparse(url)
url_scheme = url_parsed.scheme
url_port = url_parsed.port
url_netloc = url_parsed.netloc
if url_netloc.startswith('www.'):
url_netloc = url_netloc.replace('www.', '')
if url_netloc.endswith('/'):
url_netloc = url_netloc.replace('/', '')
return url_scheme, url_port, url_netloc
def tests(request):
if request.method == "POST" and 'url' in request.POST:
url = checkurl(request)
netloc(request)
var = {
'url':url,
'url_scheme':url_scheme,
'url_port':url_port,
'url_netloc':url_netloc,
}
return render(request, 'apptests/shots.html', var)
else:
return render(request, 'apptests/shots.html')
Я не хочу повторять одну и ту же строку кода в каждой функции и хочу удалите это и отложите это перед этими 3 функциями. Но я не могу этого сделать
Пожалуйста, помогите