繁体   English   中英

如何从烧瓶中制作 html 弹出窗口?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM