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

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

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

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

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

SQLAlchemy

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

ログイン

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

解決済

sqlite3.OperationalError:table user has no column named user_name pythonエラー

jaogjig
jaogjig

総合スコア10

Flask

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

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

SQLAlchemy

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

ログイン

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

1回答

0評価

0クリップ

333閲覧

投稿2021/12/28 10:12

編集2021/12/28 12:05

前提・実現したいこと

財務諸表の分析を自動化するサイトを作っています。
signup機能を作り終わりました。そこで、ユーザー名とパスワードの両方を”123”入れて新規登録ボタンを押したところ以下のエラーが発生しました。

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

エラーメッセージ

qlalchemy.exc.OperationalError: (sqlite3.OperationalError) table user has no column named user_name
[SQL: INSERT INTO user (user_name, password) VALUES (?, ?)]
[parameters: ('123', 'sHa256$LQTjrzGilIa4Y5ax$dd7fb55989f4e6beaeb151b7599b24c06694dd10c83fd1fd61172ce6a4fbba30')]
(Background on this error at: https://sqlalche.me/e/14/e3q8)
となっています。

該当コード

signup

app

.py from re import L import os from flask import Flask,render_template,request,redirect import pandas as pd from flask_sqlalchemy import SQLAlchemy from flask_login import UserMixin, LoginManager,login_user,logout_user,login_required from werkzeug.security import generate_password_hash ,check_password_hash app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///search.db' app.config['SECRET_KEY']= os.urandom(24) db = SQLAlchemy(app) Login_manager=LoginManager() Login_manager.init_app(app) class User(UserMixin,db.Model): id = db.Column(db.Integer, primary_key=True) user_name = db.Column(db.String(20), unique=True, nullable=False) password = db.Column(db.String(20), unique=True, nullable=False) def __init__(self,user_name=None, password=None): self.user_name =user_name self.password=password @Login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) @app.route("/signup",methods=["GET","POST"]) def signup(): if request.method == 'POST': user_name= request.form.get('user_name') password= request.form.get('password') user= User(user_name=user_name, password=generate_password_hash(password, method='sHa256')) db.session.add(user) db.session.commit() return redirect('/') else: return render_template("signup.html") @app.route("/login",methods=["GET","POSt"]) def login(): if request.method == 'POST': user_name= request.form.get('user_name') password= request.form.get('password') user=User.query.filter_by(user_name=user_name).first() if check_password_hash(user.password,password): login_user(user) #間違っていた時の処理は課題 return redirect('/') else: return render_template("login.html") @app.route('/logout') @login_required #ログインしてないとアクセスできません文 def logout(): logout_user() return redirect('/login')

###試したこと
https://qiita.com/414_cherry/items/b34f6c6db087e2e35a51
を参考にして誤字があるかチェックしましたが、ダメでした。

補足情報(FW/ツールのバージョンなど)

ファイルとディレクトリの配置
pycache
|-app.cpython-39.pyc
images
|-2.png
static
|-design.css
templates
|-howto.html
|-index.html
|-searched.html
|-table.html
|-signup.html
|-login.html

app.py
search.db
クレスコ財務データ(自動保存済み).csv

FW:flask
言語:Python3.9.7
pandasダウンロード済み

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Flask

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

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

SQLAlchemy

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

ログイン

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