The following code is working fine.
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()
I am trying to separate the model and register it in admin as well. But it is generating error. All the models are inside 'model' folder.
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()
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',)
model folder contains __init__.py as well
You have a circular import.
I wrote a blog post: http://charlesleifer.com/blog/structuring-flask-apps-a-how-to-for-those-coming-from-django/
Or you can just follow from the example app: https://github.com/coleifer/flask-peewee/tree/master/example