irpas技术客

使用flask-WTF,Flask-Login,sqlite3实现登录和注册(前端登录和注册页面)_Keep_Trying_Go_flask sqlite登录

大大的周 8038

文章目录 1.文件结构:2.实现效果:3.使用的可视化工具(工具DB Browser for sqlite下载):4.参考过的文章(一部分代码来自这里):5.主文件.main.py:6.前端文件index.html:7.前端文件login.html:8.前端文件register.html:9.前端文件showinfo.html(消息闪现):

1.文件结构:

2.实现效果:

3.使用的可视化工具(工具DB Browser for sqlite下载):

http://·mit() mysql.session.close() flash('注册成功') return render_template('showinfo.html') return render_template('register.html',registerform=registerform) if __name__ == '__main__': print('Pycharm') # mysql.init_app(app) #如果下面这句不写的话,会报一下错误sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: # mysql.drop_all() mysql.create_all() # new_user1=User(username='tom',password_hash='1233t') # new_user1.set_password() # mysql.session.add(new_user1) # mysql.session.commit() # mysql.session.close() app.run(debug=True) 6.前端文件index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="container" align="center"> <h3>这是首页</h3> {% with messages=get_flashed_messages() %} {% if messages %} {% for message in messages %} <div><p style="color:red">{{message}}</p></div> {% endfor %} {% endif %} {% endwith %} <li> <a>查询登录名路径,登录状态才能查询: /showuser</a> </li> {% if current_user.is_authenticated %} <li> <a>当前登录用户名: {{username}}</a> </li> <li> <a href="{{url_for('logout')}}">登出</a> </li> {% else %} <li> <a href="{{url_for('login')}}">登录</a> </li> {% endif %} </div> </body> </html> 7.前端文件login.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> a { text-decoration:none; } </style> </head> <body> <div class="container" align="center"> <h3>登录页面</h3> {% with messages=get_flashed_messages()%} {% if messages %} {% for message in messages %} <div><p style="color:red">{{message}}</p></div> {% endfor %} {% endif%} {% endwith %} <form action="" method="POST"> <!-- {{form.hidden_tag()}}--> {{form.csrf_token()}} <p> {{form.username.label}}<br> {{form.username}} </p> <p> {{form.password.label}}<br> {{form.password}} </p> <p>{{form.remember_me()}} {{form.remember_me.label}}</p> <p>{{form.submit()}} <button><a href="{{url_for('register')}}">注册</a></button></p> </form> </div> </body> </html> 8.前端文件register.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Rigister</title> <style> div { text-align:center; } </style> </head> <body> <div> <h3>注册页面</h3> {% with messages=get_flashed_messages() %} {% if messages%} {% for message in messages%} <div><p style="color:red">{{message}}</p></div> {% endfor %} {% endif %} {% endwith %} <form action="" method="POST"> {{registerform.csrf_token()}} <p> {{registerform.username.label}}<br> {{registerform.username}} </p> <p> {{registerform.password.label}}<br> {{registerform.password}} </p> <p>{{registerform.submit()}}</p> </form> </div> </body> </html> 9.前端文件showinfo.html(消息闪现): <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>showinfo</title> </head> <body> <div style="text-align:center;font-size:30px;color:#000000;margin-top:200px;"> {% with messages=get_flashed_messages() %} {% if messages%} {% for message in messages%} <div><p style="color:#000000">{{message}}</p></div> {% endfor %} {% endif %} {% endwith %} <li> <a href="{{url_for('login')}}">登录</a> </li> </div> </body> </html>


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Flask #sqlite登录 #Browser #for