gpt4 book ai didi

python - Flask-SQLAlchemy 构造函数

转载 作者:IT老高 更新时间:2023-10-28 20:23:31 25 4
gpt4 key购买 nike

在 Flask-SQLAlchemy 教程中,定义了 User 模型的构造函数:

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)


class User(db.Model):
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

对于有两列的表,这可能是可以接受的,但如果我有超过 10 列的表怎么办?每次我定义一个新模型时,构造函数必须定义吗?

最佳答案

在大多数情况下,不在模型类中定义构造函数会给您正确的行为。

Flask-SQLAlchemy 的基本模型类(也是 SQLAlchemy 的声明性基类)defines a constructor它只需要 **kwargs 并存储所有给定的参数,因此实际上没有必要定义构造函数。

如果您确实需要定义一个构造函数来进行一些特定于模型的初始化,那么请执行以下操作:

class User(db.Model):
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, **kwargs):
super(User, self).__init__(**kwargs)
# do custom initialization here

通过让基类处理 **kwargs,您可以从初始化模型字段的复杂性中解脱出来。

关于python - Flask-SQLAlchemy 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20460339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com