Flask-SQLAlchemy

简介

Flask-SQLAlchemy 是一个flask 扩展,简化了在Flask 程序中使用 SQLAlchemy 的操作,SQLAlchemy 是一个很强大的关系型数据库框架,支持多种数据库后台。

安装

pip install flask-sqlalchemy

连接

SQLAlchemy 把一个引擎的源表示为一个连同设定引擎选项的可选字符串参数的 URI。URI 的形式是:

dialect+driver://username:password@host:port/database

该字符串中的许多部分是可选的。如果没有指定驱动器,会选择默认的(确保在这种情况下 不 包含 + )。

数据库引擎URL
MySQLmysql://scott:tiger@localhost/mydatabase
Postgrespostgresql://scott:tiger@localhost/mydatabase
Oracleoracle://scott:tiger@127.0.0.1:1521/sidname
SQLite(Unix)sqlite:absolute/path/to/foo.db
SQLite(Windows)sqlite:///c:/absolute/path/to/foo.db

这里多一句嘴,一般像用户名,密码什么的这类信息最好不要直接写在代码中,特别是当你有意愿将你的代码开源的话,会暴露自己的个人信息,而且不方便管理,最好是统一写在一个 config 文件中

建表

from flask_sqlalchemy import SQLAlchemy
from flask import Flask

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://%s:%s@localhost:8889/movie" % (MysqlConfig.user,MysqlConfig.pwd)  

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = "True"

db = SQLAlchemy(app)


class Tag(db.Model):
    __tablename__ = "tag" # 表名
    id = db.Column(db.Integer, primary_key=True)  
    name = db.Column(db.String(100), unique=True)  
    addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow)  
    movies = db.relationship("Movie", backref='tag')

if __name__ == '__main__':
    db.create_all()  

从上面的例子很容易看出,SQLAlchemy 采用了面向对象的思想管理数据库,建表很简单,首先连接好你的数据库,并实例化一个对象;然后你需要建多少张 table 就定义多少个 class ,并在类中将 table 的名称和字段定义好;最后再执行一条,db.create_all(),就可以将你之前定义好的所有 table 创建好了

插入数据
 tag = Tag(
        name = 'root'
    )
    db.session.add(tag)
    db.session.commit()

Tag 是前面定义好的类,只需要对其相应字段进行赋值;然后调用一个session.add() 函数,最后再将修改提交即可,十分便捷,效果如图。
插入数据

声明:本文乃是本人学习笔记,很多内容来自于 Grinberg 的《Flask web 开发》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值