Flask --- 数据库操作---直接右键运行项目即可
一 **** 数据库相关模块的下载安装

二 **** 数据库操作步骤以及方法
ORM操作数据库
object relationship mapping 对象关系映射
flask 中的模型类和数据库中的表格相对应
模型类的属性和数据库中的列相对应
类实例化对象和数据库中的每条数据相对应
通过操作模型类对象实现数据库数据的增删改查
db.session.add(实例化对象) db.session.delete(实例化对象) db.session.query(模型类)
1.flask操作数据库的步骤
下载 pip install flask_script
flask_script import Manager
下载 pip install flask_sqlalchemy
flask_sqlalchemy import SQLAlchemy
下载 pip install flask_migrate
flask_migrate import Migrate,MigrateCommand
2.数据库的增删改查操作如下
非查询操作
1.增加
db.session.add() ----- db.session.commit()
2.增加多个数据
db.session.add_all() ----- db.session.commit()
3.删除
db.session.delete() ---- db.session.commit()
4.修改
先查找出来之后 在修改数据
user=Users.query.get(1)
user.属性=新值
db.session.commit()
查询操作
模型类.query.all()
模型类.query.first()
模型类.query.get(id值) #根据id值进行查询
#查询加过滤条件
filter_by 精细查询
模型类名.query.filter_by(列名=值).all()
#模糊查询 查询以 *** 结束
模型类.query.filter(User.name.endswith('g')).all()
查询 字符串里面有x的信息
模型类名.query.filter(Users.name.like('%x%')).all()
三 **** flask框架连接数据库
manager.py
from flaskimport Flask, render_template, redirect, url_for, request
from flask_sqlalchemyimport SQLAlchemy
app=Flask(__name__)
db=SQLAlchemy(app)
class Config(object):
DEBUG=True
#数据库配置url 打开动态追踪打印sql sqlite:////sqlite数据库路径
SQLALCHEMY_DATABASE_URI='mysql://root:root@39.98.39.173:13306/review01'
SQLALCHEMY_TRACK_MODIFICATIONS=True
SQLALCHEMY_COMMIT_ON_TEAR=True
SQLALCHEMY_ECHO=True
#从配置对象中读取配置信息
app.config.from_object(Config)
class Users(db.Model):
__tablename__='users'
id=db.Column(db.Integer,primary_key=True,autoincrement=True)
name=db.Column(db.String(30),unique=True,nullable=False)
password=db.Column(db.String(20),nullable=False)
email=db.Column(db.String(50),unique=True)
phone=db.Column(db.Integer)
create_time=db.Column(db.Date)
def __init__(self,name,password,email,phone,create_time):
self.name=name
self.password=password
self.email=email
self.phone=phone
self.create_time=create_time
@app.route('/')
def member_list():
users=Users.query.all()
print(users)
for itemsin users:
print(items)
return render_template('members.html',users=users)
@app.route('/del_member/<int:id>')
def del_member(id):
print(id)
#用户通过实例化对象得到id之后进行操作
user=Users.query.get(id)
db.session.delete(user)
db.session.commit()
return redirect(url_for('member_list'))
@app.route('/add_member',methods=['POST','GET'])
def add_member():
if request.method=='GET':
return render_template('add.html')
else:
uname=request.form['uname']
pwd=request.form['pwd']
email=request.form['email']
phone=request.form['phone']
create_time=request.form['create_time']
u=Users(name=uname,password=pwd,email=email,phone=phone,create_time=create_time)
db.session.add(u)
db.session.commit()
return redirect(url_for('member_list'))
if __name__ =='__main__':
db.create_all()
app.run()
add.html
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>添加成员页面
<h1>添加成员
<form action="/add_member" method='post'>
<p>uname*<input type="text" name="uname">
<p>password*<input type="password" name='pwd'>
<p>email*<input type="email" name="email">
<p>phone*<input type="text" name="phone">
<p>create_time*<input type="text" name="create_time">
<p><input type="submit" value="submit">
</html>

member.html
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>人员列表展示页面
<h1 align="center">人员列表展示
<h3 align="center"><a href="/add_member">增加
{{users}}
<table border="1" align="center" width="600">
<tr align="center">
<th>用户编号
<th>用户名称
<th>用户密码
<th>用户邮箱
<th>用户手机
<th>时间
<th>操作
{% for item in users %}
<tr align="center">
<td>{{item.id}}
<td>{{item.name}}
<td>{{item.password}}
<td>{{item.email}}
<td>{{item.phone}}
<td>{{item.create_time}}
<a href="/modi_member/{{item.ids}}">
修改
<a href="/del_member/{{item.id}}">
删除
{% endfor %}
</html>
修改数据库数据步骤

<a href="/modi_member/{{item.id}}"> 修改 </a>
modi_member.html
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title>修改人员信息页面
<h1>修改用户信息页面
<form action="/modi_member" method="post">
<input type="hidden" name="id" value="{{user.id}}">
uname*<input type="text" name="uname" value="{{user.name}}">
pwd*<input type="password" name="pwd" value="{{user.password}}">
email*<input type="email" name="email" value="{{user.email}}">
phone*<input type="text" name="phone" value="{{user.phone}}">
create_time*<input type="text" name="create_time" value="{{user.create_time}}">
<input type="submit" value="submit">
</html>
manager.py
#根据id找到要修改的信息并且将信息传导修改页面
@app.route('/modi_member/<int:id>',methods=['GET','POST'])
def modi_member(id):
if request.method=='GET':
user=Users.qquery.get(id)
return render_template('modi_member.html',user=user)
else:
#得到表格中得到的数据
name=request.form['name']
password=request.form['password']
email=request.form['email']
phone=request.form['phone']
create_time=request.form['create_time']
#查找id相关数据信息
user=Users.query.get(id)
user.name=name
user.password=password
user.email=email
user.phone=phone
user.create_time=create_time
#往数据库中进行提交数据
db.session.commit()
#反转路径跳转到主页显示修改之后的信息
return redirect(url_for('member_list'))
文章标题中的直接右键运行项目即可
意思是在配置文件中直接右击run manager.py即可
不需要用命令运行创建数据库即可
