From time to time we need to validate whether the URL is valid.
Of course, there is a quick hacky implementation of checking if the input string has the URL format, such as:
def valid_url(to_validate: str) -> bool:
    if to_validate.startswith("http"):
        # assume valid and move on......but let's make sure we do a better job than the above!
Python
In Python 3, there is a urllib library and we can use its parse module (documentation), i.e.
from urllib.parse import urlparse
def valid_url(to_validate:str) -> bool:
    o = urlparse(to_validate)
    return True if o.scheme and o.netloc else False
Django
Django comes with a variety of utility functions that will make your web development convenient. URLValidator module will help you validate whether the given URL is valid, and raise ValidationError exception if invalid:
from django.core.validators import URLValidator
from django.core.exceptions import ValidationError
def valid_url(to_validate:str) -> bool:
    validator = URLValidator()
    try:
        validator(to_validate)
        # url is valid here
        # do something, such as:
        return True
    except ValidationError as exception:
        # URL is NOT valid here.
        # handle exception..
        print(exception)
        return False
 
            