Создайте простую форму для отправки имени. Затем go на другую страницу с надписью «Привет, имя». в flask - PullRequest
0 голосов
/ 05 августа 2020

, поэтому я получаю эту ошибку

«Не удалось создать URL-адрес для конечной точки" Success ". Вы забыли указать значения ['name']?" что нужно сделать, чтобы исправить это

Это основной фрагмент, если server.py

from flask import Flask, redirect, url_for, request, render_template
app = Flask(__name__) 
@app.route('/success/<name>') 
def success(name): 
   return 'welcome %s' % name 
@app.route('/',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)) 
return render_template('login.html') 

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

login. 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> 

1 Ответ

0 голосов
/ 05 августа 2020

Ваш маршрут /login не сопоставлен ни с одним обработчиком.

Скорее login() прикреплен к / маршруту, который при доступе (запрос GET) не содержит nm в request.args и поэтому ваша переменная user установлена ​​на None.

from flask import Flask, redirect, url_for, request, render_template

app = Flask(__name__) 

@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)) 


@app.route('/')
def index():
    # Assuming template is available
    return render_template('login.html')
 

if __name__ == '__main__': 
   app.run(debug = True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...