Flask 数据库 SQLAlchemy

Python 版本: 3.7.8

用 Pycharm 开发工具,新建项目,设置安装以下包:

1) Flask

2) Flask-SQLAchemy

3) PyMySql

 

###  Flask-SQLAlchemy 的介绍与安装:


 

1.  ORM: Object Relationship Mapping (模型关系映射)

2.  flask-sqlalchemy 是一套 ORM 框架

3.  ORM 的优势:简单方便地操作数据库,和操作对象类似。一个表抽象成一个类,一条数据抽象成该类的一个对象。

4.  安装 flask-sqlalchemy

 

### Flask-SQLAlchemy 的使用:


 

1.  初始化和设置数据库配置信息:

  * 使用 flask_sqlalchemy 中的 SQLAlchemy 进行初始化:

1 from flask_sqlalchemy import SQLAlchemy
2 import config
3 
4 app = Flask(__name__)
5 app.config.from_object(config)
6 db = SQLAlchemy(app)

2.  设置配置信息,在 'config.py' 文件中添加以下:

 1 # dialect+driver://username:password@host:port/database
 2 DIALECT = 'mysql'
 3 DRIVER = 'pymysql'  # 驱动程序在 python2 中是 mysqldb 
 4 USERNAME = 'pydev'
 5 PASSWORD = 'syjinsari'
 6 HOST = '192.168.0.110'
 7 PORT = '3306'
 8 DATABASE = 'py_demo'
 9 
10 SQLALCHEMY_DATABASE_URL = '{}+{}://{}:{}@{}:{}/{}?charset=utf8'.format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)
11 
12 SQLALCHEMY_TRACK_MODIFICATIONS = False

3.  在主 app 文件中添加配置文件:

1 app = Flask(__name__)
2 app.config.from_object(config)
3 db = SQLAlchemy(app)

4.  测试连接,成功或者报错:

'''
db.create_all()
'''

 

###  使用 Flask-SQLAlchemy 创建模型与表的映射:


 

1.  模型需要继承自 `db.Model` ,然后映射到表中的属性,必须写成 `db.Column`的数据类型。

2.  数据类型:db.Integer  db.String  db.Text

   其他参数:  primary_key  autoincrement  nullable

3.  最后调用  `db.create_all() 将模型真正创建到数据库中

 

### 数据增删改查


 

 

 1 # 增:
 2 article1 = Article(title='1st aaa',content='this is aaa')
 3 db.session.add(article1)
 4 # 事务
 5 db.session.commit()
 6 
 7 #
 8 # select * from article where article.title = '1st aaa'
 9 article1 = Article.query.filter(Article.title == '1st aaa').first()
10 print('title: %s' % article1.title)
11 print('content: %s' % article1.content)
12 
13 #
14 # 1. 查到需要更改的行  2. 更改数据 3. 提交事务
15 article1 = Article.query.filter(Article.title == '1st aaa').first()
16 article1.title = 'new aaa'
17 db.session.commit()
18 
19 
20 #
21 # 1. 查到需要删除的行   2. 删除   3. 提交事务
22 article1 = Article.query.filter(Article.title == 'new aaa').first()
23 db.session.delete(article1)
24 db.session.commit()

 

你可能感兴趣的:(Flask 数据库 SQLAlchemy)