python - Flask - TypeError: __init__() 缺少 2 个必需的位置参数:'name' 和 'user_id'
问题描述
当我使用Python插入数据时,我遇到了以下问题:
Traceback (most recent call last):
File "D:/Documents/python/dbFlask/web/models.py", line 42, in <module>
env = Env()
TypeError: __init__() missing 2 required positional arguments: 'name' and 'user_id'
我的init .py 是这样的:
from flask import Flask
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] =
"mysql+pymysql://root:123@127.0.0.1:3306/env"
我的operatedDB.py的关键代码是这样的:
class Env(db.Model):
def __init__(self, name, user_id):
self.name = name
self.user_id = user_id
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255), unique=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
env = Env()
env.name = 'test01'
env.user_id = '1'
db.session.add(env)
db.session.commit()
在我运行operatedDB.py 之后出现了问题。我找不到问题的解决方案。
解决方案
当您在 Python 中创建一个对象时,它会调用__init__()
方法,在您的情况下,您在__init__(self, name, user_id)
方法中有 2 个参数,因此您应该在创建Env
类似的对象时提供这两个值env = Env('test01', '1')
所以而不是
env = Env()
env.name = 'test01'
env.user_id = '1'
利用
env = Env('test01', '1')
推荐阅读
- sql - 列转置到 Oracle (pl/sql, sql)
- cakephp - 如何在cakephp 3.6.7的sql查询中加入两个数据库表
- xml - 如何在 Xamarin 表单中设置透明背景
- c# - 如何从 VBE 加载项中获取正确的活动应用程序?
- c# - 有没有办法在使用“RequestStartCasting”的 Miracast 设备期间隐藏配对消息框?
- flutter - 是否可以在 Flutter 中显示原生组件?
- python - 如何将 sparkle updater 框架与使用 pyinstaller 构建的 python 应用程序集成
- c# - 如何在使用 Selenium WebDriver 和 NUnit C# 并行运行测试后关闭多个浏览器窗口
- c# - 索引附加到某些页面的内容
- xml - XPath 根据值获取子节点