Flask-RESTful——SQLAlchemy

一、Flask-SQLAlchemy

Flask-SQLAlchemy 使用起来非常有趣,对于基本应用十分容易使用,并且对于大型项目易于扩展。有关完整的指南,请参阅 SQLAlchemy 的 API 文档。

1、创建一个最小的应用

常见情况下对于只有一个 Flask 应用,所有您需要做的事情就是创建 Flask 应用,选择加载配置接着创建 SQLAlchemy 对象时候把 Flask 应用传递给它作为参数。
一旦创建,这个对象就包含 sqlalchemy 和 sqlalchemy.orm 中的所有函数和助手。此外它还提供一个名为 Model 的类,用于作为声明模型时的 delarative 基类:

连接配置
# settings.py
DIALECT = 'mysql'
DRIVER = 'pymysql'
USERNAME = 'root'
PASSWORD = '808069'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'cms'

SQLALCHEMY_DATABASE_URI = '{}+{}://{}:{}@{}:{}/{}?charset=utf8'.format(
    DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE
)
SQLALCHEMY_COMMIT_ON_TEARDOWN = True
SQLALCHEMY_TRACK_MODIFICATIONS = True
创建连接
# manage.py 
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
建表
# models.py
from manage import db
 
class User(db.Model):
    __tablename__ = 'user'
    id = db.Column(db.INTEGER,primary_key=True)
    username = db.Column(db.String(80),unique=True)
    password = db.Column(db.String(80),nullable=False)
 
class CodeCountRecord(db.Model):
    __tablename = 'codecountrecord'
    id = db.Column(db.INTEGER,primary_key=True)
    count = db.Column(db.INTEGER)
    data = db.Column(db.DATE)
    user = db.Column(db.ForeignKey('user.id'))
 
 
db.create_all()
2、数据的CURD
在查询数据之前我们必须先插入数据。
您的所有模型都应该有一个构造函数,如果您 忘记了,请确保加上一个。

只有您自己使用这些构造函数而 SQLAlchemy 在内部不会使用它, 
所以如何定义这些构造函数完全取决与您。

向数据库插入数据分为三个步骤:
			创建 Python 对象
			把它添加到会话 :这里的会话不是 Flask 的会话,而是 Flask-SQLAlchemy 的会话。
										  它本质上是一个 数据库事务的加强版本。
			提交会话

把对象添加到会话之前, SQLAlchemy 基本不考虑把它加到事务中。
这是好事,因为您仍然可以放弃更改。

调用 add() 函数会添加对象。
它会发出一个 INSERT 语句给数据库,但是由于事务仍然没有提交,您不会立即得到返回的 ID 。
如果您提交,您的用户会有一个 ID:

from cms.models import User
from manage import db
 
def create_user():
    # 创建一个新用户对象
    user = User(
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值