一、提前安装的软件
- 使用SQLAlchemy之前,要先在电脑上安装MySQL
- python操作Mysql驱动:Flask要操作数据库,必须要先安装Python操作MySQL的驱动,在python中,有Mysql-python、mysqlclient、pymysql等驱动,可以通过如下命令安装
pip3 install pymysql
- Flask中,我们很少使用pymysql直接写原生SQL语句去操作数据库,更多的是通话SQLAlchemy提供的ORM技术,类似于操作普通的Python对象一样,,实现对数据库的增、删、改、查操作,而Flask-SQLAlchemy是对SQLAlchemy是对的一个封装,这使得在Flask中使用SQLAlchemy更加方便,Flask-SQLAlchemy需要独立安装,因为Flask-SQLAlchemy依赖SQLAlchemy,所以只要安装了Flask-SQLAlchemy,SQLAlchemy便会自动安装,安装命令如下
pip3 install flask-sqlalchemy
二、Flsak-SQLAlchemy的基本使用-连接MySQL数据库
- 以下代码如果运行时在pycharm的控制台打印出了(1,),说明连接数据库成功
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text
app = Flask(__name__)
#再app.config中设置SQLALCHMEY_DATABASE_URI,来配置数据库的连接
#mysql所在的主机名
HOSTNAME = "127.0.0.1"
#MYSQL监听的端口号,默认3306
PORT = 3306
#连接MYSQL的用户名,用户用自己设置的
USERNAME = 'root'
#连接mysql的密码,用户自己设置的
PASSWORD = 'root123456'
#mysql上创建的数据库名称
DATABASE = 'database_learn'
app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"
# 创建一个有Flask-SQLAlchemy提供的SQLAlchemy类的对象db,在创建这个类时,要传入当前的app
db = SQLAlchemy(app)
#测试数据量是否连接成功
with app.app_context():
with db.engine.connect() as conn:
rs = conn.execute(text("select 1 "))
print(rs.fetchone())
@app.route("/")
def hello_world():
return "hello world"
if __name__ == "__main__":
app.run()
- 在使用Flask-SQLAlchemy操作数据库之前,先要创建一个由Flask-SQLAlchemy提供的SQLAlchemy类的对象db,在创建这个类时,要传入当前的app,然后还要在app.config中设置SQLALCHEMY_DATABASE_URI,来配置数据库的连接,Flask-SQLAlchemy在连接数据库时,会从app.conf中读取SQLALCHEMY_DATABASE_URI参数,以上代码分别设置了Mysql主机名、端口号、用户名、密码及数据库名称,数据库应该提前在mysql中创建好,SQLALCHEMY_DATABASE_URI根据不同的数据库有不同的连接方式,MySQL的连接方式如下
mysql+[driver]://{username}:{password}@{host}:{port}/{database}?charset=utf8mb4