前文中实现了简单的登录页面;在这个登录页面中存待优化问题:
用户名和密码的准确性校验
思路:连接Mysql获取用户名和密码进行比较查看是否一致
一、安装ipython和Mysql数据库相关内容
1.数据库直接安装在本地或者访问已有的数据库即可;数据库使用也是ORM模型,实现面向对象编程语言里不同类型系统的数据库转化;
ORM对应关系
ORM 数据库
Models类 ————> 数据库表
对象实例 ————> 对应表数据
属性 ————> 对应表字段
2.本实例中使用数据库Mysql
pip install Flask-SQLAlchemy
二、调试过程中使用ipython更有助于数据的调试
pip install ipython
出现如下页面即可:
C:\Flask>ipython
In [1]:
接下来就是实现代码了:
run.py
from flask import Flask,render_template,request
from import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] ='mysql://root:123456@localhost:3306/mysql'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
#创建数据库模型,自行插入数据
class Autor(db.Model):
__tablename__ = 'test_hhhh'
id = db.Column(db.INTEGER,primary_key=True)
username = db.Column(db.String(80),unique=True)
password = db.Column(db.String(80), nullable=False)
def __repr__(self):
return 'Autor %s'%(self.username)
@app.route('/login/',methods=['GET','POST'])
def login():
if request.method =='GET':
return render_template('login.html')
if request.method =='POST':
if request.form['username'] in [user.username for user in Autor.query.all()]:
if request.form['password'] == Autor.query.filter(Autor.username==request.form['username']).all()[0].password:
return render_template('success.html')
else:
return "密码错误"
else:
return "用户不存在"
else:
return render_template('login.html')
if __name__ == '__main__':
app.run(debug=True,port=8888)
网友评论