无法使用值 ['adhar_no'] 为终结点'otp'生成 url。你的意思是'vote'吗?



谁能帮助我从flask我得到这个错误的代码无法用值['adhar_no']为端点'otp'构建url。你的意思是"投票"吗?

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


parties=["A","B","C","D"]

app = Flask(__name__)
@app.route('/')
def my_form():
return render_template('home.html')
#return render_template('admin.html')
@app.route('/', methods=['POST'])
def my_form_post():
adhar_no = request.form['aadhar_num']
return redirect(url_for('otp',adhar_no=adhar_no))
return render_template('otp.html',adhar_no=adhar_no)
@app.route('/otp',methods = ['POST'])
def verification():
a_no=request.args.get('adhar_no')
otp_text = request.form['otp']
return a_no
HTML CODE
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VERIFY</title>
<link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<div class="container">
<h1>Verification</h1>
<form action="{{ url_for("verification")}}" method="POST">
<div class="form-control">
<input type="text" name="otp" required pattern="[0-9]{4}" maxlength=4 id="userCode" ng-model="formdata.userCode" title="4 Digit code">&nbsp;
<label>Enter otp </label>
</div>
<strong>{{error}}</strong> 
<button class="btn">VERIFY</button>
</form>
</div>
<script src="/static/js/sjs.js"></script>
</body>
</html>

,我得到这个错误

werkzeug.routing。无法用值['adhar_no']为端点'otp'构建url。你的意思是"投票"吗?

Flaskurl_for需要一个函数名。您正在传递otp,但没有otp函数,因此错误

return redirect(url_for('.verification',adhar_no=adhar_no))

对于/otp路由中的verification功能,您还需要更改功能签名。

更多信息请参考url_for文档

注意:url_for函数采用你已有的路由函数的输入。

return redirect(url_for('otp',adhar_no=adhar_no))

这里你在url_for中传递了otp作为函数名(在你现有的路由中不存在),

而你必须通过url_for中的verification

E。g:return redirect(url_for('verification',adhar_no=adhar_no))

无论如何,你的验证函数只接受POST请求,而你正试图发送查询参数adhar_no和GET请求。

最新更新