Как быстрее получить несколько URL-адресов в Python/Django
У меня есть код, который анализирует json файл, содержащий около 400 URL и посылает запрос к каждому из них на основе поискового запроса и получает его код состояния. Когда я запускаю его, это занимает много времени (более 10 минут), мне интересно, есть ли способ заставить этот код получать эти URL и их код состояния менее чем за 10 секунд.
views.py
def get_sites(request):
all_sites = {}
if 'name' in request.GET:
name = request.GET['name']
with open('sites-data.json') as f:
data = json.load(f)
mod_data = json.loads(json.dumps(data).replace("{}",name))
for item in mod_data:
if mod_data[item]['errorType'] == "status_code":
url = mod_data[item]['url']
response = requests.head(url, allow_redirects=False)
status_code = response.status_code
if status_code == 200:
site_data = Search(
term = name,
sitename = item,
is_available = True,
)
site_data.save()
else:
site_data = Search(
term = name,
sitename = item,
is_available = False,
)
site_data.save()
all_sites = Search.objects.all().order_by('-id')
return render(request, 'main/search.html',{"all_sites":all_sites} )
search.html
<div class = "container">
<br>
<h2 class = "text-center">SEARCH SITES</h2>
<br>
<form method="GET">
<input type = "text" name = "name" placeholder="Search..." class = "text-center">
<button type = "submit" class = "btn-danger btn-sm">Search</button>
</form>
</div>