Django sync to async
У меня есть этот json файл ниже, я написал код, чтобы проверить существует ли имя пользователя на этих сайтах или нет, используя библиотеку запроса, проблема в том, что это занимает слишком много времени и возвращает эту ошибку.
('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
Я пытался сделать это быстрее, используя asyncio, к сожалению, я не смог преобразовать это представление в async, так как не было учебника, демонстрирующего то, что я пытаюсь реализовать. Я прочитал документацию библиотеки django sync_to_async тоже.
{
"BuyMeACoffee": {
"errorType": "status_code",
"url": "https://buymeacoff.ee/{}",
"urlMain": "https://www.buymeacoffee.com/",
"urlProbe": "https://www.buymeacoffee.com/{}",
},
"BuzzFeed": {
"errorType": "status_code",
"url": "https://buzzfeed.com/{}",
"urlMain": "https://buzzfeed.com/",
},
"CNET": {
"errorType": "status_code",
"url": "https://www.cnet.com/profiles/{}/",
"urlMain": "https://www.cnet.com/",
}, ....
}
Это синхронный код, который я написал:
def create(request):
form = SearchForm()
if request.method == 'POST':
name = request.POST['name']
with open('sites-data.json') as f:
data = json.load(f)
mod_data = json.loads(json.dumps(data).replace("{}",name))
search_term = SearchTerm(
user = request.user,
name = name
)
search_term.save()
for item in mod_data:
if mod_data[item]['errorType'] == "status_code":
url = mod_data[item]['url']
urlMain = mod_data[item]['urlMain']
response = requests.get(url)
status_code = response.status_code
if status_code == 200:
site_data = SearchResult(
term = search_term,
url = urlMain,
sitename = item,
search_status = 'CLAIMED',
)
site_data.save()
else:
site_data = SearchResult(
term = search_term,
url = urlMain,
sitename = item,
search_status = 'AVAILABLE',
)
site_data.save()
context = {'form':form}
return render(request, 'main/search.html', context )
Как преобразовать этот код в async?