Это потому, что вы используете AJAX .. Вы программно отправляете запрос через браузер, за сценой, который является отдельным и не связан с тем, что вы видите на экране.
В Flask, вам нужно будет ответить с URL, чтобы перенаправить на. На стороне клиента вам нужно установить window.location
для этого URL.
РЕДАКТИРОВАТЬ: в виде небольшой демонстрации, вы можете открыть браузер Инструменты разработчика (щелкните правой кнопкой мыши на любой веб-страницу, выберите «Проверить элемент»), затем выберите вкладку «Консоль» и введите window.location = "https://google.com"
, затем нажмите enter, и ваш браузер изменит URL-адрес и перейдет к Google.
from flask import Flask, request, redirect, url_for
import yaTemplates as Templates
app = Flask(__name__)
@app.route('/')
def index():
return Templates.login()
@app.route('/PostTest')
def test():
return 'Hello'
@app.route("/loginsubmit", methods=["POST"])
def loginsubmit():
# + request.json["username"]
return url_for('test')
app.run(debug=True)
Клиентская сторона:
<script>
$("#loginbutton").click(function () {
$.ajax({
type: 'POST',
url: "/loginsubmit",
success: function (url) {
window.location = url;
}
})
});
</script>