質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

SQLAlchemy

SQLAlchemyとはPython 用のORMライブラリです。MIT Licenceのオープンソースとして提供されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

6908閲覧

TypeError: __init__() takes 1 positional argument but 3 were givenの解決方法

Na3430mls

総合スコア3

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

SQLAlchemy

SQLAlchemyとはPython 用のORMライブラリです。MIT Licenceのオープンソースとして提供されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/04/08 05:23

前提・実現したいこと

PythonとFlaskでのログインおよび新規登録機能

発生している問題・エラーメッセージ

新規登録(入力されたデータをdbに送信)しようとしたら、引数が正しく渡されておらず、dbに送信されません。

エラーメッセージ TypeError: __init__() takes 1 positional argument but 3 were given ### 該当のソースコード ```ここに言語名を入力 Python,Flask,sqlalchemy ソースコード newcomer.html models.py database.py ```ここに言語を入力 html コード <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Register</title> </head> <body> <h1>新規登録</h1> <a href="/top">ログイン画面に戻る</a> {% if status =="exit_user" %} <p>そのユーザーは既に登録されています</p> {% endif %} <form action="/register" method="POST"> <input type="text" name="user_name" placeholder="user name"> <input type="password" name="password" placeholder="password"> <input type="submit" value="新規登録"> </form> </body> </html> ```python コード ```from sqlalchemy import Column, Integer, String, Text, DateTime from models.database import Base from datetime import datetime class OnegaiContent (Base): __tablename__ = 'onegaiconkeytents' id = Column(Integer, primary_key=True) title = Column(String(128), unique=True) body = Column(Text) date = Column(DateTime, default=datetime.now()) def __init__(self, title=None, body=None, date=None): self.title = title self.body = body self.date = date def __repr__(self): return '<Title %r>' % (self.title) class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True) user_name = Column(String(128), unique=True) hashed_password = Column(String(128)) def __init__(self, user_name=None,hashed_password=None): self.user_name = user_name self.hashed_password = hashed_password # __repr__(self): def __repr__(self): return '<Name %r>' % (self.user_name) ```python ```ここに言語を入力 from sqlalchemy import create_engine from sqlalchemy.orm import scoped_session, sessionmaker from sqlalchemy.ext.declarative import declarative_base import os database_file = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'onegai.db') print(database_file) engine = create_engine('sqlite:///' + database_file, convert_unicode=True) db_session = scoped_session(sessionmaker( autocommit=False, autoflush=False, bind=engine)) Base = declarative_base() Base.query = db_session.query_property() def init_db(): from models import models Base.metadata.create_all(bind=engine)
### 試したこと Sessionで接続したところ、エラー文が出なかったので、tableそのものは作成されているようです。 INSERT文で直接データを挿入しようとしましたが、同様のエラーが出ました。 ### 補足情報(FW/ツールのバージョンなど) Python 3.8.8 conda version : 4.9.2 ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Userクラスのdef __init__(...)の行インデントがずれています。
そのため、Userクラスでは__init__()が定義されていないことになり、親クラスの__init__()が呼び出されて、引数が合わないTypeErrorが発生しています。

投稿2021/04/08 23:34

bsdfan

総合スコア4794

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Na3430mls

2021/04/09 06:07

コメントありがとうございます。始めたばかりでインデント関連のミスをよくやってしますので、確認するようにします。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問