Я не понимаю, почему мой код Flask не подключается к моему HTTP-методу - PullRequest
0 голосов
/ 14 июля 2020

Это мой Flask код, он должен открыть другую страницу, которая приветствует пользователя, который входит в систему с моим html кодом

from flask import Flask, redirect, url_for, request,render_template
app = Flask(__name__)

@app.route('/')
def home():
    return render_template('login.html')

@app.route('/success/<name>')
def success(name):
    return ('Welcome %s' % name)

@app.route('/login', methods = ['POST','GET'])
def login():
    if request.method == 'POST':
        user = request.form['nm']
        return (redirect(url_for(' success' , name = user)))
    else:
        user = request.args.get('nm')
        return (redirect(url_for('success', name = user)))

    if __name__ == '__main__':
        app. run(debug = True)

и это мой html код

    <html>
    <body>
        <form action="http://localhost:5000/login" method="post" >
            <p>Enter Name: </p>
            <p><input type = "text" name = "nm"/></p>
            <p><input type = "submit" value="submit" /></p>

        </form>
    </body>
</html>

Код html дал эту ошибку в терминале

ОШИБКА: get_updates_processor. cc (258)] Ошибка PostClientToServerMessage () во время GetUpdates с ошибкой 2

1 Ответ

1 голос
/ 14 июля 2020

Несколько ошибок:

  1. В success в случае публикации есть лишний пробел.
  2. __main__ неправильно выровнен.

Вот фиксированный код

from flask import Flask, redirect, url_for, request,render_template
app = Flask(__name__)

@app.route('/')
def home():
    return render_template('login.html')

@app.route('/success/<name>')
def success(name):
    return ('Welcome %s' % name)

@app.route('/login', methods = ['POST','GET'])
def login():
    if request.method == 'POST':
        user = request.form['nm']
        return (redirect(url_for('success' , name = user)))
    else:
        user = request.args.get('nm')
        return (redirect(url_for('success', name = user)))

if __name__ == '__main__':
    app. run(debug = True)
...