一、Flask-SQLAlchemy简介
1.Flask-SQLAlchemy是Flask的一个扩展,可以实现Flask集成SQLAlchemy,是一个ORM框架。
2.安装
pip install flask-sqlachemy
3.创建模型
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:199820@localhost:3306/flask_db'
SQLALCHEMY_TRACK_MODIFICATIONS = False
db = SQLAlchemy(app)
#ORM
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return '<User %r>' % self.username
def create_table():
db.create_all()
def add_user():
admin = User(username='admin',email='admin@qq.com')
guest = User(username='guest',email='guest@qq.com')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
def query():
users = User.query.all()
username = User.query.filter_by(username='admin').first()
print(users)
print(username)
if __name__ == '__main__':
# create_table()
# add_user()
query()
二、增删改查
1.添加(insert)
2.删除(delete)
3.修改(update)
4.查询(query)
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:199820@localhost:3306/flask_db'
SQLALCHEMY_TRACK_MODIFICATIONS = False
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return '<User %r>' % self.username
def add():
user = User(username='tom',email='tom@qq.com')
db.session.add(user)
db.session.commit()
def delete():
user=User.query.get(1)
db.session.delete(user)
db.session.commit()
def update():
user = User.query.get(2)
user.username='update guest'
db.session.commit()
def query():
users=User.query.all()
print(users)
if __name__ == '__main__':
# add()
# delete()
# update()
query()
三、Flask-SQLAlchemy-综合运用
1.结合视图和模板一起使用
from flask import Flask,request,render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:199820@localhost:3306/flask_db'
SQLALCHEMY_TRACK_MODIFICATIONS = False
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return '<User %r>' % self.username
def add_user(username,email):
user = User(username=username,email=email)
db.session.add(user)
db.session.commit()
@app.route('/add',methods=['POST','GET'])
def add():
if request.method == 'POST':
username=request.form['username']
email=request.form['email']
add_user(username,email)
return '添加成功!'
else:
return render_template('user.html')
@app.route('/list')
def list_user():
users = User.query.all()
return render_template('user_list.html',users=users)