如何解决使用 Flask 从一个引导模式导航到同一页面内的另一个
我创建了一个 Home.html
,其中有两个名为 Login 和 Register 的引导模式,我有两个问题。
A) 如果用户填写的所有详细信息都正确,我如何通过单击“注册”按钮从注册模式转到登录模式。
B) 如果详细信息不正确,如何通过给出错误消息再次显示登录模式,如果详细信息正确,则单击“登录”按钮转到主页。
主页.html
<button class="nav-link btn btn-dark lnkhov" data-toggle="modal" data-target="#LoginstaticBackdrop">Sign In</button>
<button class="nav-link btn btn-dark lnkhov" data-toggle="modal" data-target="#RegisterstaticBackdrop">Sign Up</button>
<!-- Login HTML Modal-->
<div class="modal fade" id="LoginstaticBackdrop" data-keyboard="false"
tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content bg-dark">
<div class="modal-header">
<h5 class="modal-title font-weight-bold" id="LoginModalLabel">Login</h5>
<button class="close text-white" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body text-left">
<div class="alert alert-danger" style="display: none" id="ErrorAler" role="alert"> "Error Message Here" </div>
<form action="/Login" method="post">
<div class="form-group">
<label for="loginInputEmail">Email Address</label>
<input type="email" class="form-control" name="loginInputEmail" id="loginInputEmail" aria-describedby="emailHelp" placeholder="Email Address" required>
<small id="loginemailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
<label for="loginInputPassword">Password</label>
<input type="password" class="form-control" name="loginInputPassword" id="loginInputPassword" placeholder="Password" required>
<small id="loginpasswordHelpInline" class="text-muted">Must be 8-20 characters long.</small>
</div>
<div class="form-group form-check">
<input type="checkBox" class="form-check-input" id="loginCheck1">
<label class="form-check-label" value="remember-me" for="loginCheck1">Remember me</label>
</div>
<button type="submit" class="btn btn-primary">Login</button>
</form>
</div>
<div class="modal-footer d-flex justify-content-center">
<small class="text-muted">Forgot Password?</small>
<small><a class="lnkhov" href="">Click Here</a>,</small>  
<small class="text-muted">New User!!</small>
<button class="btn btn-danger" data-target="#RegisterstaticBackdrop" data-toggle="modal" data-dismiss="modal">Register</button>
</div>
</div>
</div>
</div>
<!-- Register HTML Modal-->
<div class="modal fade" id="RegisterstaticBackdrop" data-backdrop="static" data-keyboard="false"
tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content bg-dark">
<div class="modal-header">
<h5 class="modal-title font-weight-bold" id="RegisterModalLabel">Register</h5>
<button class="close text-white" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body text-left">
<form action="/Register" method="post" oninput='RegisterInputConPassword.setCustomValidity(RegisterInputConPassword.value != RegisterInputPassword.value ? "Password does not match." : "")'>
<div class="form-group form-row">
<div class="col">
<label for="RegisterInputFirstname">First name</label>
<input type="text" class="form-control" name="RegisterInputFirstname" id="RegisterInputFirstname" placeholder="First name" required>
</div>
<div class="col">
<label for="RegisterInputLastname">Last name</label>
<input type="text" class="form-control" name="RegisterInputLastname" id="RegisterInputLastname" placeholder="Last name" required>
</div>
</div>
<div class="form-group">
<label for="RegisterInputEmail">Email Address</label>
<input type="email" class="form-control" name="RegisterInputEmail" id="RegisterInputEmail" aria-describedby="emailHelp" placeholder="Email address" required>
<small id="emailHelp" class="form-text text-muted">We'll never send Spam Mails.</small>
</div>
<div class="form-group form-row">
<div class="col">
<label for="RegisterInputPassword">Password</label>
<input type="password" class="form-control" name="RegisterInputPassword" id="RegisterInputPassword" pattern="^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,20}$" placeholder="Password" required>
<small id="RegisterpasswordHelpInline" class="text-muted">Must be 8-20 characters long.</small>
</div>
<div class="col">
<label for="RegisterInputConPassword">Confirm Password</label>
<input type="password" class="form-control" name="RegisterInputConPassword" id="RegisterInputConPassword" placeholder="Confirm password" required>
</div>
</div>
<div class="form-group">
<label for="RegisterInputPhoneNo">Phone Number</label>
<input type="tel" id="RegisterInputPhoneNo" name="RegisterInputPhoneNo" class="form-control" pattern="[0-9]{4}[0-9]{2}[0-9]{4}" placeholder="Phone number" required>
<small id="RegisterPhoneHelpInline" class="text-muted">Enter Valid Number</small>
</div>
<button type="submit" class="btn btn-primary" >Register</button>
</form>
</div>
<div class="modal-footer d-flex justify-content-center">
<small class="text-muted">Already Register!!</small>
<button class="btn btn-danger" data-target="#LoginstaticBackdrop" data-toggle="modal" data-dismiss="modal">Login</button>
</div>
</div>
</div>
</div>
@web.route('/')
def home():
return render_template('Home.html')
@web.route('/Register',methods=['POST','GET'])
def Register():
if request.method == 'POST':
Fname = request.form['RegisterInputFirstname']
Lname = request.form['RegisterInputLastname']
Email = request.form['RegisterInputEmail']
Password = request.form['RegisterInputPassword']
Phone = request.form['RegisterInputPhoneNo']
cur = MysqL.connection.cursor()
cur.execute("INSERT INTO USERS (Fname,Lname,Email,Pass,Phone) VALUES (%s,%s,%s)",(Fname,Password,Phone))
MysqL.connection.commit()
return render_template('...')
@web.route('/Login','GET'])
def Login():
if request.method == 'POST':
Email = request.form['loginInputEmail']
Password = request.form['loginInputPassword']
cur = MysqL.connection.cursor()
cur.execute("SELECT * FROM USERS WHERE Email='" + Email + "' AND Pass='" + Password + "'")
data = cur.fetchone()
cur.execute("SELECT Fname FROM USERS WHERE Email='" + Email + "'")
username = cur.fetchone()
if (details and username) == None:
a = "Email Id or Password Invalid!!"
ermsg = jsonify({'errormsg': a})
return render_template('Login.html',ermsg = ermsg)
else:
un = username[0]
uname = jsonify({'unmsg' : un})
return render_template('Home.html',uname = uname)
至于显示错误信息,我认为应该是通过jsonify、jquery、javascript,所以对此,我对如何将数据从flask传输到ajax感到困惑。
请帮我解决这个问题,提前谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。