本书第五章Flask之database。
1. ORM简介
ORM技术(Object-Relational Mapping),就是把关系数据库的表结构映射到对象上,借此实现把对数据库的操作改变成为对象的操作。
Python常见的ORM是SQLAlchemy,Flask中可以有Flask-SQLAlchemy库,是在SQLAlchemy的基础上,继续做了一层包装,简化了对数据库上下文的管理,所以我们选择Flask-SQLAlchemy作为学习的对象。
按照《Flask Web开发实战》——搭建开发环境的方法搭建新的Flask开发环境,按照相关的库。这里选择sqlite作为数据库,如果是MySQL等其他数据库,还需要安装相关的driver。
pipenv install Flask
pipenv install flask-sqlalchemy
2. demo展示
这里先做一个demo的展示,新建app.py,包括创建表、数据的增删改查。
2.1 基本的环境准备
核心是需要指定数据库的URI,不同数据库有不同的格式
db = SQLAlchemy(app)是init,并获取到数据库的上下文
import click
import os
from flask import Flask, flash, redirect, url_for, render_template, abort
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import FlaskForm
from wtforms import TextAreaField, SubmitField
from wtforms.validators import DataRequired
app = Flask(__name__)
# 指定数据库的URI
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL', 'sqlite:///' + os.path.join(app.root_path, 'data.db'))
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY', 'secret string')
db = SQLAlchemy(app)
2.2 创建表
- 这里继续创建Note表,用Class表示我们的表
class Note(db.Model):
__tablename__ = 'note'
id = db.Column(db.Integer, primary_key=True)
body =