0

次のコードは正常に動作しています。

run.py

import datetime
from flask import Flask
from peewee import TextField, DateTimeField
from flask_peewee.db import Database
from flask_peewee.auth import Auth
from flask_peewee.admin import Admin, ModelAdmin

# configure database
DATABASE = {
    'name': 'surveyApp.db',
    'engine': 'peewee.SqliteDatabase',
}
DEBUG = True
CSRF_ENABLED = True
SECRET_KEY = 'you-will-never-guess'

app = Flask(__name__)
app.config.from_object(__name__)

db = Database(app)

# from model.user_infos import Note, NoteAdmin

class Note(db.Model):
    message = TextField()
    created = DateTimeField(default=datetime.datetime.now)

class NoteAdmin(ModelAdmin):
    columns = ('message', 'created',)

# create an Auth object for use with our flask app and database wrapper
auth = Auth(app, db)
admin = Admin(app, auth)
admin.register(Note, NoteAdmin)
admin.setup()

if __name__ == '__main__':
    app.run()  

モデルを分離して管理者にも登録しようとしています。しかし、それはエラーを生成しています。すべてのモデルは「モデル」フォルダー内にあります。

エラーを生成するコード:

run.py (修正)

import datetime
from flask import Flask
from peewee import TextField, DateTimeField
from flask_peewee.db import Database
from flask_peewee.auth import Auth
from flask_peewee.admin import Admin, ModelAdmin

# configure database
DATABASE = {
    'name': 'surveyApp.db',
    'engine': 'peewee.SqliteDatabase',
}
DEBUG = True
CSRF_ENABLED = True
SECRET_KEY = 'you-will-never-guess'

app = Flask(__name__)
app.config.from_object(__name__)

db = Database(app)

auth = Auth(app, db)
admin = Admin(app, auth)

from model.user_infos import Note, NoteAdmin # GENERATES IMPORT ERROR
admin.register(Note, NoteAdmin)
admin.setup()

if __name__ == '__main__':
    app.run()  

モデル/user_infos.py

from run import db, admin

import datetime
from peewee import TextField, DateTimeField
from flask_peewee.admin import ModelAdmin

class Note(db.Model):
    message = TextField()
    created = DateTimeField(default=datetime.datetime.now)

class NoteAdmin(ModelAdmin):
    columns = ('message', 'created',)

モデルフォルダーには __init__.py も含まれています

4

1 に答える 1

1

循環インポートがあります。

ブログ投稿を書きました: http://charlesleifer.com/blog/structuring-flask-apps-a-how-to-for-those-coming-from-django/

または、サンプルアプリからフォローすることもできます: https://github.com/coleifer/flask-peewee/tree/master/example

于 2013-08-11T16:30:36.053 に答える