flask-sqlalchemy

  • 简介

因为 SQLAlchemy 是一个常用的数据库抽象层,并且需要一定的配置才能使用,因此 我们为你做了一个处理 SQLAlchemy 的扩展(Flask-SQLAlchemy 扩展)

  • 配置键

Flask-SQLAlchemy 从您的 Flask 主配置中加载这些值。
Flask-SQLAlchemy 扩展能够识别的配置键的清单

# 扩展库文件 exts.py
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

# flask项目的主配置文件configs.py
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'flask1'
USERNAME = 'root'
PASSWORD = '123456'

DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(username=USERNAME,password=PASSWORD, host=HOST,port=PORT, db=DATABASE)

SQLALCHEMY_DATABASE_URI = DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True

# 数据库配置后需要和app绑定 app.py
from flask import Flask
import configs
from exts import db

app = Flask(__name__)
# 加载配置文件
app.config.from_object(configs)
# db绑定app
db.init_app(app)
  • 声明模板

*通常下,Flask-SQLAlchemy 的行为就像一个来自 declarative 扩展配置正确的 declarative 基类。因此,我们强烈建议您阅读 SQLAlchemy 文档以获取一个全面的参考。尽管如此,我们这里还是给出了最常用的示例。

需要牢记的事情:

  • 您的所有模型的基类叫做 db.Model。它存储在您必须创建的 SQLAlchemy 实例上。 细节请参阅 快速入门
  • 有一些部分在 SQLAlchemy 上是必选的,但是在 Flask-SQLAlchemy 上是可选的。 比如表名是自动地为您设置好的,除非您想要覆盖它。它是从转成小写的类名派生出来的,即 “CamelCase” 转换为 “camel_case”。*
class User(db.Model):
    # 如果类名不是数据库表名派生出来的,我们要添加对应表名
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, username, email):
        self.username = username
        self.email = email

    def __repr__(self):
        return '' % self.username
  • 创建初始化数据库

# 只需要从交互式 Python shell 中导入 db 对象
>>> from yourapplication import db
>>> db.create_all()
# 简单的添加数据
>>> from yourapplication import User
>>> admin = User('admin', '[email protected]')
>>> guest = User('guest', '[email protected]')
>>> db.session.add(admin)
>>> db.session.add(guest)
>>> db.session.commit()

-####后续
flask-sqlalchemy的增删改查
更多知识查看flask-sqlalchemy官方文档

你可能感兴趣的:(flask-sqlalchemy)