API и APP Flask [дубликат]

Вы также можете проверить, не работает ли $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'];
       }
}
9
задан davidism 26 October 2015 в 20:08
поделиться

2 ответа

Сервер разработки Flask по умолчанию имеет однопоточность. Он может обрабатывать только один запрос за раз. Блокирование запросов до получения ответа. Ваш код флэшки делает запрос в одном потоке, а затем ждет. Для обработки этого второго запроса нет других потоков. Таким образом, запрос никогда не завершается, и исходный запрос ожидает навсегда.

Включить несколько потоков или процессов на dev-сервере, чтобы избежать тупиковой ситуации и устранить непосредственную проблему.

app.run(threaded=True)
# or
app.run(processes=2)

Однако , сделать полный HTTP-запрос к приложению из приложения никогда не должен быть необходимым и указывает на более глубокую проблему дизайна. Например, обратите внимание, что внутренний запрос не будет иметь доступа к сеансу в браузере клиента. Извлеките общий код и вызовите его внутренне, вместо того, чтобы делать новый запрос.

18
ответ дан davidism 31 August 2018 в 10:35
поделиться

Я не знаком с Flask. Однако этот бит кода:

if form.validate_on_submit():
    return requests.post(request.url_root + '/api/login', data={"test": True})

Кажется, что вы принимаете опубликованную форму, проверяете ее и публикуете ее снова. Снова и снова.

0
ответ дан John Gordon 31 August 2018 в 10:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: