flask数据持久化

Flask 中最方便用的数据库框架是 flask_sqlalchamy,是对 SQLAlchamy 在 Flask 中的扩展, SQLAlchemy 是一个 Python 数据库工具(ORM,即对象关系映射)。

借助 SQLAlchemy,通过定义 Python 类来表示数据库里的一张表(类属性表示表中的字段 或者 列),通过对这个类进行各种操作来代替写 SQL 语句。这个类我们称之为模型类,类中的属性我们将称之为字段。

SQLAlchemy 支持多种数据库,对于不同的数据库只需要修改下配置链接就可以,在这里我们使用关系型数据库 SQLite 作为演示。

pip install flask_sqlalchamy

安装之后,导入到项目中,对应用进行初始化:

from flask import Flaskfrom flask_sqlalchamy import SQLAlchamy  # 导入 SQLAlachamy
app = Flask(__name__) # 创建 Flask 应用
db = SQLAlchamy(app) # 初始化应用

数据库一般作为第三方应用,需要通过建立与数据库的连接,让应用可以是使用数据库。

常见的数据库有 MySql、SqlServer、Oracle、SQLite、MongoDB 等等,每种数据库都有自己特定的连接格式,我们使用的是简单的 SQLite 数据库,它的连接格式是:

sqlite:数据库文件的绝对地址

注意: 如果您使用 Windows 系统,上面的 URI 前缀部分需要写入三个斜线 (即 sqlite:///)

在例子中,将数据库文件路径设置为当前应用的根目录下:

import os# ...app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:' + os.path.join(app.root_path, 'data.db')

注意: 为了设置 Flask、扩展或是我们程序本身的一些行为,需要设置和定义一些配置变量。Flask 提供了一个统一的接口来写入和获取这些配置变量:Flask.config 字典。配置变量的名称必须使用大写,写入配置的语句一般会放到扩展类实例化语句之前。app.config 是一种简便的 Flask 应用的配置方式

模型简单来说就是数据库中的一张表定义,需要有名称,字段,在 Python 中用一个类来表示,由于需要和数据库的表对应,模型必须继承自 SQLAlchamy 的 Model 类

在初始化应用中,我们得到一个 SQLAlchamy 的实例 db,定义模型都是继承自实例的 Model 类的

下面定义一个 Profile 模型,用来记录一个用户的基本信息:

class Profile(db.Model):    id = db.Column(db.Integer, primary_key=True) # 主键    name = db.Column(db.String(20))    birthday = db.Column(db.Date())    createtime = db.Column(db.DateTime())    about = db.Column(db.Text())
  • 模型中的属性,都是有 Column 类的一个实例,传入的参数为字段的类型,下面的表格列出了常用的字段类

  • 在 db.Column() 中添加额外的选项(参数)可以对字段进行设置。比如,primary_key 设置当前字段是否为主键。除此之外,常用的选项还有 nullable(布尔值,是否允许为空值)、index(布尔值,是否设置索引)、unique(布尔值,是否允许重复值)、default(设置默认值)等

  • 当一个列被设置为主键,默认主键值是自增长的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值