【Python Flask】 Web开发学习笔记——数据库

书籍:《Flask Web开发:基于Python的Web应用开发实战》

作者代码地址:miguelgrinberg/flasky

Flask不限制使用何种类型的数据库包,书中使用Flask-SQLAlchemy 作为示范。Flask-SQLAlchemy是一个关系型数据库框架,支持多种数据库后台。数据库使用URL指定,格式如下:

MySQL: mysql://username:password@hostname/database

hostname表示MySQL所在的主机,database表示要使用的数据库名。

from flask.ext.sqlalchemy import SQLAlchemy
basedir = os.path.abspath(os.path.dirname(__file__))

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] =\
    'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True

db = SQLAlchemy(app)

和之前一样,使用app.config为flask的扩展提供全局变量和配置信息。

模型是指程序使用的持久化实体。ORM中模型是一个Python类,类中属性对应数据库表中的列。下面的例子定义了Role和User模型。

class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True)
    
    def __repr__(self):
        return '<Role %r>' % self.name

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True, index=True)
    
    def __repr__(self):
        return '<User %r>' % self.username

然后可以用各种相关的函数进行创建数据库,创建模型,修改行,删除行,查询行等操作。

更多文章与笔记请关注:微信公众号:二进制树

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章