谁能帮助我从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">
<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请求。