pip install Flask-SQLAlchemy
在Flask
中简单配置:
from flask import Flask from flask_sqlalchemy import SQLAlchemy #数据库依赖
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
如上就是官方提供的一个简单的案例。
Flask-SQLAlchemy
扩展能够识别的配置键常用的有:
SQLALCHEMY_DATABASE_URI 用于连接数据库
Postgres:
postgresql://scott:tiger@localhost/mydatabase
MySQL:
mysql://scott:tiger@localhost/mydatabase
Oracle:
oracle://scott:tiger@127.0.0.1:1521/sidname
SQLite (注意开头的四个斜线):
sqlite:////absolute/path/to/foo.db
SQLALCHEMY_ECHO
如果设置成 True
,SQLAlchemy
将会记录所有 发到标准输出(stderr)的语句,这对调试很有帮助。
Flask-SQLAlchemy 扩展能够识别的配置键的清单
一个简单的例子:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
最常用的Column
类型:
Integer 一个整数
String (size) 有长度限制的字符串
Text 一些较长的 unicode 文本
DateTime 表示为 Python datetime 对象的 时间和日期
Float 存储浮点值
Boolean 存储布尔值
PickleType 存储为一个持久化的 Python 对象
LargeBinary 存储一个任意大的二进制数据
插入记录:
user = User('jack',''jack@qq.com')
db.session.add(user)
db.session.commit()
删除记录:
db.session.delete(user)
db.session.commit()
查询记录:
user = User.query.filter_by('jack').first()
user.email # 输出 jack@qq.com
主键查询get()
,返回所有数据all()
。
更新记录和添加记录类似:
user = User.query.get(1)
user.email = 'haha@qq.com'
db.session.delete(user)
db.session.commit()
更多请参考 官方文档