Flask框架從入門到精通之模型數據庫配置(十一)

知識點: 一、數據庫配置 二、字段選項 三、約束字段 四、關係選擇python

1、概況

在Django框架中內部已經提供ORM這樣的框架,來實現對象關係映射,方便咱們操做數據庫。若是想在Flask中也達到這樣效果,須要安裝一個第三方來支持。mysql

SQLAlchemy是一個關係型數據庫框架,它提供了高層的ORM和底層的原生數據庫的操做。flask-sqlalchemy是一個簡化了SQLAlchemy操做的flask擴展。sql

2、安裝

在Flask安裝:數據庫

pip install flask-sqlalchemy
複製代碼

要鏈接數據還須要安裝pymysqlflask

pip install pymysql
複製代碼

3、鏈接數據庫

首先咱們要知道本地數據庫的帳號密碼。並須要建立一個數據庫:app

create database db_flask charset=utf8;
複製代碼

在項目中數據庫鏈接和經常使用配置:框架

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql

pymysql.install_as_MySQLdb()
app = Flask(__name__)
# 設置鏈接數據庫的URL
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:123456@127.0.0.1:3306/db_flask'

# 數據庫和模型類同步修改
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

# 查詢時會顯示原始SQL語句
app.config['SQLALCHEMY_ECHO'] = True

db = SQLAlchemy(app)

複製代碼

4、字段類型

支持的數據庫類型:優化

類型 對應python中 說明
Integer int 普通整數,通常是32位
SmallInteger int 取值範圍小的整數,通常是16位
BigInteger int或long 不限制精度的整數
Float float 浮點數
Numeric decimal.Decimal 普通整數,通常是32位
String str 變長字符串
Text str 變長字符串,對較長或不限長度的字符串作了優化
Unicode unicode 變長Unicode字符串
UnicodeText unicode 變長Unicode字符串,對較長或不限長度的字符串作了優化
Boolean bool 布爾值
Date datetime.date 時間
Time datetime.datetime 日期和時間
LargeBinary str 二進制文件

5、約束類型

支持的數據庫約束:spa

選項 說明
primary_key 若是爲True,表明表的主鍵
unique 若是爲True,表明這列不容許出現重複的值
index 若是爲True,爲這列建立索引,提升查詢效率
nullable 若是爲True,容許有空值,若是爲False,不容許有空值
default 爲這列定義默認值

6、關係選項

選項 說明
backref 在關係的另外一模型中添加反向引用
primary join 明確指定兩個模型之間使用的聯結條件
uselist 若是爲False,不使用列表,而使用標量值
order_by 指定關係中記錄的排序方式
secondary 指定多對多中記錄的排序方式
secondary join 在SQLAlchemy中沒法自行決定時,指定多對多關係中的二級聯結條件

歡迎關注個人公衆號:code

image
相關文章
相關標籤/搜索