使用flask怎么实现一个登录注册项目?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。目录结构配置文件设计/templates/config.py#数据库连接配置
使用flask怎么实现一个登录注册项目?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
目录结构
配置文件设计
/templates/config.py
#数据库连接配置import pymysqlconn = pyMysql.connect( host='192.XXX.XXX.XX', port=320xx, user='root', passWord='123456', database='test_XX' )
首页/templates/index.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">{# <link rel=stylesheet type=text/CSS href="{{ url_for('static', filename='style.css') }}" rel="external nofollow" rel="external nofollow" >#} <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" type="text/css" href="/static/style.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <title>林家小猪测试小站</title></head><body> <div> <h2>您好,{{ username }},欢迎来到我的小站</h2> <a href="{{ url_for('user_login') }}" rel="external nofollow" rel="external nofollow" >退出</a> <br/> </div></body></html>
登录页面/templates/login.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" type="text/css" href="/static/style.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" >{# <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}" rel="external nofollow" rel="external nofollow" type="text/css">#} <title>登录</title></head><body> <div> <h2>用户登录</h2> <!--将登陆信息放到一个fORM中--> <form method="POST"> <input type="text" name="username" placeholder="请输入用户名" /> <br/> <input type="password" name="password" placeholder="请输入密码(小于12位)" /> <br/> <!--jinja2的函数--> {% if message %} {{message}} {% endif %} <br/> <input type="submit" value="登录" /> <input type="reset" value="重置" /> <!--跳转到reGISter的页面--> <a href="{{ url_for('register') }}" rel="external nofollow" >注册</a> </form> </div></body></html>
注册页面/templates/register.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" type="text/css" href="/static/style.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <title>注册</title></head><body> <div> <h2>用户注册</h2> <form method="POST"> <input type="text" name="username" placeholder="请输入用户名" /> <br/> <input type="password" name="password" placeholder="请输入密码(小于12位)" /> <br/> <!--jinja2的函数--> {% if message %} {{message}} {% endif %} <br/> <input type="submit" value="注册" /> <input type="reset" value="重置" /> <a href="{{ url_for('user_login') }}" rel="external nofollow" rel="external nofollow" >登录</a> </form> </div></body></html>
登录校验 /model/check_login.py
from templates.config import conncur = conn.cursor()def is_null(username,password):if(username==''or password==''):return Trueelse:return Falsedef is_existed(username,password):sql="SELECT * FROM user WHERE username ='%s' and password ='%s'" %(username,password)cur.execute(sql)result = cur.fetchall()if (len(result) == 0):return Falseelse:return Truedef exist_user(username):sql = "SELECT * FROM user WHERE username ='%s'" % (username)cur.execute(sql)result = cur.fetchall()if (len(result) == 0):return Falseelse:return True
注册校验 /model/regist_login.py
from templates.config import conncur = conn.cursor()def add_user(username, password): # sql commands sql = "INSERT INTO user(username, password) VALUES ('%s','%s')" %(username, password) # execute(sql) cur.execute(sql) # commit conn.commit() # 对数据库内容有改变,需要commit() conn.close()
最后编辑运行文件
app.py
from flask import Flask,render_templatefrom flask import redirectfrom flask import url_forfrom flask import requestfrom model.check_login import is_existed,exist_user,is_nullfrom model.check_regist import add_userapp = Flask(__name__)@app.route('/')def index(): return redirect( url_for('user_login') )@app.route('/user_login',methods=['GET','POST'])def user_login(): if request.method=='POST': # 注册发送的请求为POST请求 username = request.form['username'] password = request.form['password'] if is_null(username,password): login_massage = "温馨提示:账号和密码是必填" return render_template('login.html', message=login_massage) elif is_existed(username, password): return render_template('index.html', username=username) elif exist_user(username): login_massage = "提示:密码错误,请输入正确密码" return render_template('login.html', message=login_massage) else: login_massage = "不存在该用户" return render_template('login.html', message=login_massage) return render_template('login.html')@app.route("/regiser",methods=["GET", 'POST'])def register(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] if is_null(username,password): login_massage = "温馨提示:账号和密码是必填" return render_template('register.html', message=login_massage) elif exist_user(username): return redirect(url_for('user_login')) else: add_user(request.form['username'], request.form['password'] ) return render_template('index.html', username=username) return render_template('register.html')if __name__=="__main__": app.run()
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。
--结束END--
本文标题: 使用Flask怎么实现一个登录注册项目
本文链接: https://www.lsjlt.com/news/276588.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-29
2024-04-29
2024-04-29
2024-04-29
2024-04-29
2024-04-29
2024-04-29
2024-04-29
2024-04-29
2024-04-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0