[英]How can I make a html popup from flask?
我正在创建一个 Web 应用程序并在 python 上使用烧瓶,我创建了一个注册系统,用户可以在其中登录网站及其保存在 sqlite3 数据库中的详细信息(电子邮件、用户名和密码)。 我已经做到了,如果用户在注册时输入用户名或电子邮件,并且该用户名或电子邮件在数据库中,它会将您带回登录页面并且不保存他们的数据,我该如何做到这一点将您重定向回表单页面 出现带有错误消息的弹出窗口?
html代码:
<!DOCTYPE html>
<html class='signIn'>
{% extends "layout.html" %}
{% block content %}
<body>
<center>
<form name='myForm' method="post" action="{{ url_for('signup') }}" style='text-align: center;'>
<p>Email</p>
<input type="email" name="email" placeholder='Enter you email adress' required oninvalid="setCustomValidity('Please enter a valid email ')" onchange="try{setCustomValidity('')}catch(e){}"></input>
<p>Username</p>
<input type="text" name="user" placeholder='Enter your username' required></input>
<p>Password</p>
<input type="password" name="password" placeholder='Enter your password' required></input>
<br><br>
<input type="submit" value="Signup"></input>
<a href="{{ url_for('home') }}" class='button_link'>Cancel</a>
</form>
</center>
</body>
{% endblock %}
</html>
相关python代码:
def signup():
cur = g.db.cursor()
email = request.form['email']
username = request.form['user']
password = request.form['password']
cur.execute("""SELECT email,username FROM users WHERE email=? OR username=?""",(email, username))
result = cur.fetchone()
if result:
return redirect('/form/')
else:
cur.execute("INSERT INTO users VALUES (?, ?, ?)", [email, username, password])
g.db.commit()
return redirect('/')
它不是弹出窗口,但您可以使用烧瓶的系统进行消息传递。 这是flash
命令。
要在您的代码中使用它,它可能如下所示:
if result:
flash('You are already registered, please log in')
return redirect('/form/')
else:
cur.execute("INSERT INTO users VALUES (?, ?, ?)", [email, username, password])
g.db.commit()
flash('Thank you for registering')
return redirect('/')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.