https://www.cnblogs.com/lonelyhiker/p/8486221.html

环境说明
Centos7 + python3.6 + mysql5.7
1.安装Flask-SQLAlchemy,pymyql驱动

pip install flask-sqlalchemy
pip intall pymysql
2.使用Flask-SQLAlchemy

Flask-SQLAlchemy数据库URL
常用的数据库引擎:

数据库引擎    URL
MySql    mysql+pymysql://username:password@host/database
Postgres    postgresql://username:password@host/database
app.py编辑

#导入模块
from flask_sqlalchemy import SQLAlchemy
import pymysql

#创建flask对象
app = Flask(__name__)

#配置flask配置对象中键:SQLALCHEMY_DATABASE_URI

app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://username:password@hostname/database"

#配置flask配置对象中键:SQLALCHEMY_COMMIT_TEARDOWN,设置为True,应用会自动在每次请求结束后提交数据库中变动

app.config['SQLALCHEMY_COMMIT_TEARDOWN'] = Ture
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True

#获取SQLAlchemy实例对象,接下来就可以使用对象调用数据

db = SQLAlchemy(app)
3.sqlalchemy列常见参数

选择项    说明
autoincrement    True 是否自增
primary_key    True 是否是主键
indexE    TRUE 是否是索引
unique    True 是否是唯一
nullable    True 是否允许字段为空
default    默认值
4.字段类型

类型名称    python类型    描述
Integer    int    常规整型,通常为32位
SmallInteger    int    短整型,通常为16位
BigInteger    intlong    精度不受限整型
Float    float    浮点型
Numeric    decimal    定点数
String    str    可变长度字符串
Text    str    可变长度字符串,适合大量文本
Unicode    unicode    可变长度Unicode字符串
Boolean    bool    布尔值
Date    datetime.date    日期类型
Time    datetime.time    时间类型
DateTime    datetime.datetime    日期时间类型
Interval    datetime.timedate    时间间隔
Enum    str    字符列表
PickleType    任意Python对象    自动Pickle序列化
LargeBinary    str    二进制
5.使用sqlalchemy

from app import db
#创建模型对象
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

# 1.创建表
db.create_all()

# 2.增加记录
admin = User(username='admin', email='admin@example.com')
guest = User(username='guest', email='guest@example.com')
db.session.add(admin)
db.session.add(guest)
db.session.commit()

#3.查询记录,注意查询返回对象,如果查询不到返回None
User.query.all() #查询所有
User.query.filter_by(username='admin').first()#条件查询
User.query.order_by(User.username).all()#排序查询
User.query.limit(1).all()#查询1条
User.query.get(id = 123)#精确查询

# 4.删除
user = User.query.get(id = 123)
db.session.delete(user)
db.session.commit()
6.具体实例代码可以看我的git有个flask+requests爬取小说展示项目

基于flask+requests小说爬取项目
文档更新时间: 2019-06-16 20:50   作者:月影鹏鹏