Вы также можете проверить, не работает ли $result
так, как до этого, перед выполнением массива fetch
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');
if(!$result)
{
echo "error executing query: "+mysql_error();
}else{
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
}
}
Сервер разработки Flask по умолчанию имеет однопоточность. Он может обрабатывать только один запрос за раз. Блокирование запросов до получения ответа. Ваш код флэшки делает запрос в одном потоке, а затем ждет. Для обработки этого второго запроса нет других потоков. Таким образом, запрос никогда не завершается, и исходный запрос ожидает навсегда.
Включить несколько потоков или процессов на dev-сервере, чтобы избежать тупиковой ситуации и устранить непосредственную проблему.
app.run(threaded=True)
# or
app.run(processes=2)
Однако , сделать полный HTTP-запрос к приложению из приложения никогда не должен быть необходимым и указывает на более глубокую проблему дизайна. Например, обратите внимание, что внутренний запрос не будет иметь доступа к сеансу в браузере клиента. Извлеките общий код и вызовите его внутренне, вместо того, чтобы делать новый запрос.
Я не знаком с Flask. Однако этот бит кода:
if form.validate_on_submit():
return requests.post(request.url_root + '/api/login', data={"test": True})
Кажется, что вы принимаете опубликованную форму, проверяете ее и публикуете ее снова. Снова и снова.