Я создаю приложение Flask, которое я хочу использовать для отображения некоторой очищенной информации. Я импортировал мой файл очистки в Flask, и для его функции очистки я должен передать имя для поиска в качестве параметра. Я хочу получить это имя из поля ввода в моем HTML-коде. Я пытаюсь сделать это, используя вызов Ajax в jQuery, но в настоящее время я получаю ошибку 404.
Я попытался вывести необработанные данные json, а не список python. Я попытался использовать два отдельных вызова Ajax. Я также попытался просмотреть другой пост, на который мне указали, но я столкнулся с этой указанной ошибкой 404.
Код приложения Flask
#Start the flask app
app = Flask(__name__)
#Start page
@app.route('/')
def index():
return render_template('index.html')
#What happens when our button is clicked
@app.route('/_get_data')
def _get_data():
#Get the name we want to search for
searchName = request.args.get('searchName')
#Call the function and pass our search name parameter
dataList = scrape_data(searchName)
#Return the json format of the data we scraped
return jsonify(dataList = dataList)
#Run the app
if __name__ == "__main__":
app.run(debug = True)
index.html code
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>NBA Data Web App</title>
</head>
<body>
<script src = "http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js" crossorigin = "anonymous"></script>
<script type = text/javascript src = "{{url_for('static', filename = 'jquery.js') }}"></script>
<form id = "nameForm" role = "form">
<input name = "text">
<button id = "searchBtn"> Search </button>
</form>
<div id = "container"></div>
<script type = text/javascript> $SCRIPT_ROOT = {{ request.script_root|tojson|safe }}; //Get the root of our data </script>
<script type = "text/javascript">
//Root so we can get the data from our form
$('button#searchBtn').click(function(e) {
//Prevent our form from submitting
e.preventDefault();
//Get the root
$.getJSON($SCRIPT_ROOT + '/_get_data', {
//Our searchName variable will be the one from our HTML input box
searchName: $('input[name = "text"]').val(),
}, function(data) {
console.log(data.dataList);
});
});
</script>
</body>
</html>
Опять же, чтобы быть ясным, моя цель состоит в том, чтобы взять данные из моей формы ввода HTML, нажав один раз на searchBtn
, и использовать эти данные в качестве строки в моем параметре для данных webscrape. Затем, когда возвращенные данные возвращаются, я пытаюсь зарегистрировать их на моем console.py