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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python

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

Q&A

解決済

1回答

6740閲覧

dbにinsertする際にエラーが起きてしまいます

kamakiri

総合スコア13

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python

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

0グッド

0クリップ

投稿2017/06/28 14:54

編集2017/06/28 15:48

ユーザー作成のページを作ってdbに入れるとこで
エラーが起きてしまいます・・・
意味がわかりそうでわからず手が止まってしまっている状態です

error.log

1Traceback (most recent call last): 23181 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/flask/ app.py", line 1988, in wsgi_app 33182 response = self.full_dispatch_request() 43183 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/flask/ app.py", line 1641, in full_dispatch_request 53184 rv = self.handle_user_exception(e) 6File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/flask/ app.py", line 1544, in handle_user_exception 73186 reraise(exc_type, exc_value, tb) 83187 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/flask/ app.py", line 1639, in full_dispatch_request 93188 rv = self.dispatch_request() 103189 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/flask/ app.py", line 1625, in dispatch_request 113190 return self.view_functions[rule.endpoint](**req.view_args) 123191 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/remake /server/views.py", line 263, in user_create 133192 user.save() 143193 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/peewee .py", line 5108, in save 153194 pk_from_cursor = self.insert(**field_dict).execute() 163195 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/peewee .py", line 3526, in execute 173196 cursor = self._execute() 183197 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/peewee .py", line 2912, in _execute 193198 return self.database.execute_sql(sql, params, self.require_commit) 203199 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/peewee .py", line 3775, in execute_sql 213200 self.commit() 223201 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/peewee .py", line 3598, in __exit__ 233202 reraise(new_type, new_type(*exc_args), traceback) 243203 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/peewee .py", line 3768, in execute_sql 253204 cursor.execute(sql, params or ()) 263205 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/pymysq l/cursors.py", line 166, in execute 273206 result = self._query(query) 283207 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/pymysq l/cursors.py", line 322, in _query 293208 conn.query(q) 303209 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/pymysq l/connections.py", line 855, in query 313210 self._execute_command(COMMAND.COM_QUERY, sql) 323211 File "/usr/local/pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/pymysq l/connections.py", line 1071, in _execute_command 333212 raise err.InterfaceError("(0, '')") 343213 InterfaceError: (0, '')

python

1def user_create(): 2 if request.method == 'POST': 3 user = Users( 4 name=request.form['name'], 5 email=request.form['email'], 6 _password=hashlib.sha256(request.form['password']).hexdigest(), 7 updated_at=datetime.datetime.now() 8 ) 9 user.save() 10 db.commit() 11 return render_template("login.html") 12 return render_template('user/edit.html')

追記
flaskでpeeweeを使用してます
db = MySQLDatabase('database_name', user="kamakiri", password="kamakiri@23")

base_model.py

1class BaseModel(Model): 2 class Meta: 3 database = db 4 5 def _db_connect(self): 6 db.connect() 7 8 def _db_close(self): 9 db.close()

一応こんな感じでbasemodelを作っていて、それ
class Users(BaseModel):
としています

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

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

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

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

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

miyahan

2017/06/28 15:14

環境(Flask? SQLalchemy?)を書いてください。また差支えなければコード中の `db` を定義しているコードも張り付けてください。
miyahan

2017/06/28 15:39

"Users" モデルで class Meta: database = db は指定していますか? また、リクエストを処理する前にデータベースの接続処理(db.connect())は行っていますか?
guest

回答1

0

ベストアンサー

なかなかに意味がわからないエラーメッセージですね…。ググってみると、DBにそもそも接続していない/できていない、DBのセッションやカーソルを不適切に使い回したりきちんとクローズしていなかったといった事例が散見されたので、ORM(peewee) と MySQLサーバー間の通信に問題があるように思えます。

まずリクエスト処理前にDBへの接続を行い、終わったら閉じる処理を入れているか確認してください。公式ドキュメントを参考にしてください。

投稿2017/06/28 20:53

miyahan

総合スコア3095

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

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

kamakiri

2019/09/26 08:49

request, responseの範囲外でのdb操作の場合、こうなりますね・・・ なので、各db操作のお尻でdb.close()してあげればエラー起きなくなりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問