当前位置: 首页 > 面试题库 >

Flask-SQLAlchemy构造函数

益绯辞
2023-03-14
问题内容

在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的声明性基类)定义了一个构造函数,该构造函数只接受**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您,您可以摆脱初始化模型字段的复杂性。



 类似资料:
  • 问题内容: 我是flask和sqlalchemy的新手,我只是开始在flask应用程序上工作,现在我正在使用sqlalchemy。我想知道使用flask-sqlalchemy与sqlalchemy是否可以获得任何显着的好处。 问题答案: 主要功能是与Flask应用程序正确集成-它创建并配置引擎,连接和会话,并将其配置为与Flask应用程序一起使用。 此设置非常复杂,因为我们需要创建作用域会话并根据

  • 在Flask Web应用程序中使用原始SQL对数据库执行CRUD操作可能很乏味。 相反,Python工具包SQLAlchemy是一个功能强大的OR映射器,为应用程序开发人员提供了SQL的全部功能和灵活性。 Flask-SQLAlchemy是Flask扩展,它将对SQLAlchemy的支持添加到Flask应用程序中。 什么是ORM(对象关系映射)? 大多数编程语言平台是面向对象的。 另一方面,RDB

  • Flask-SQLAlchemy Flask-SQLAlchemy is an extension for Flask that adds support forSQLAlchemy to your application. It aims to simplify using SQLAlchemywith Flask by providing useful defaults and extra h

  • ORM 框架 Web 开发中,一个重要的组成部分便是数据库了。Web 程序中最常用的莫过于关系型数据库了,也称 SQL 数据库。另外,文档数据库(如 mongodb)、键值对数据库(如 redis)近几年也逐渐在 web 开发中流行起来,我们习惯把这两种数据库称为 NoSQL 数据库。 大多数的关系型数据库引擎(比如 MySQL、Postgres 和 SQLite)都有对应的 Python 包。在

  • Flask-SQLAlchemy Tutorial Connect your Flask app to a database using Flask-SQLAlchemy. Tutorial: https://hackersandslackers.com/manage-database-models-with-flask-sqlalchemy/ Demo: https://flasksqlalch

  • pytest-flask-sqlalchemy A pytest plugin providing fixtures for running tests intransactions using Flask-SQLAlchemy. Contents Motivation Quick examples Usage Installation From PyPi Development version