私はFlaskでPeeweeを使用しようとしていますが、なぜデータベース接続が機能しないのか分かりません。PeeweeとFlask: 'データベース'オブジェクトに属性 'commit_select'がありません
config.py
class Configuration(object):
DATABASE = {
'name': 'test',
'engine': 'peewee.MySQLDatabase',
'user': 'root',
'passwd': 'root'
}
DEBUG = True
SECRET_KEY = 'shhhh'
APP/INITの.py
from flask import Flask
from flask_peewee.db import Database
app = Flask(__name__)
app.config.from_object('config.Configuration')
db = Database(app)
import views,models
APP/models.py
from peewee import *
from . import db
database = db
class UnknownField(object):
def __init__(self, *_, **__): pass
class BaseModel(Model):
class Meta:
database = database
class Tbcategory(BaseModel):
insert_dt = DateTimeField()
name = CharField()
class Meta:
db_table = 'tbcategory'
Iはpwizとmodels.pyを生成しました。
私はそれを対話型コンソールで使用しようとすると、タイトルにエラーが発生します。 models.pyの行をデータベース= dbから元のpwiz:
db = MySQLDatabase('test', **{'host': '127.0.0.1', 'password': 'root', 'user': 'root'})
に変更すると、すべて正常に動作します。私は私の人生でインターネット上の例を見つけることができません。どちらの設定もアプリケーション内にあるか、config.pyファイルの外にありますが、sqliteやその他のやや使い方が異なります。 flask_peeweeからDatabase()を使用してMySQLDatabaseを直接使用する必要はありませんか?設定で外部ファイルを使用するにはどうすればよいですか? あるメソッドでは127.0.0.1を使用し、もう一方のメソッドではホスト指定を使用しないことに注意してください。私はピューニーフラスコのウェブサイトからコピーをしました。
が鳴ります。私は犯人を見つけたと思う - > 'app.config.from_object( 'config.Configuration')'。私はあなたがそのメソッドを文字列の代わりに設定オブジェクトに渡すことを意味すると思います。 –
@WyattIsraelありがとう、しかし私はそれを2回チェックして、それは正しいです。私は文字列を渡さなければなりません。私はそれが読み込まれているかどうかを調べるためにタイプミスを試みました。文字列を使用すると、実際に読み込まれます。私は何が起こるかわからない。 – maugch
間違った@WyattIsrael - 私のコメントを参照してください。 – coleifer