[파이썬] Peewee Flask-Admin 통합

In this blog post, we will explore how to integrate Peewee, a simple and lightweight ORM for Python, with Flask-Admin, a powerful and flexible administrative interface for Flask web applications.

Why Peewee and Flask-Admin?

Peewee is a popular choice for developers who prefer a lightweight ORM with a simple and intuitive API. It supports various databases such as SQLite, MySQL, and PostgreSQL, making it easy to work with different data sources.

On the other hand, Flask-Admin provides an easy way to create administrative interfaces for your Flask applications. It allows you to manage your database models, perform CRUD operations, and handle user authentication easily.

Integrating Peewee with Flask-Admin can give you a powerful combo for building robust web applications with an intuitive administrative interface.

Installation

To get started, make sure you have both Peewee and Flask-Admin installed in your Python environment. You can install them using pip:

pip install peewee flask-admin

Setting up Peewee Models

First, we need to define our database models using Peewee’s declarative syntax. For example, let’s create a simple User model:

from peewee import *

db = SqliteDatabase('my_app.db')

class User(Model):
    username = CharField(max_length=100)
    email = CharField(max_length=100)
    password = CharField(max_length=100)

    class Meta:
        database = db

db.connect()
db.create_tables([User])

Setup Flask-Admin

Next, we need to configure and initialize Flask-Admin in our Flask application. We can define an administrative view for our User model and register it with Flask-Admin.

from flask_admin import Admin
from flask_admin.contrib.peewee import ModelView

app = Flask(__name__)
admin = Admin(app, name='MyApp', template_mode='bootstrap3')

# Register the User model with Flask-Admin
admin.add_view(ModelView(User))

Now, if you run your Flask application and navigate to the Flask-Admin interface, you should be able to see the User model listed and accessible for CRUD operations.

Customizing Flask-Admin Views

Flask-Admin provides various customization options to tailor the administrative interface based on your requirements. You can customize the list view, edit view, and add filters to make the interface more user-friendly.

For example, let’s add some customization to our User model view:

class UserView(ModelView):
    list_columns = ('username', 'email')
    column_searchable_list = ('username', 'email')

admin.add_view(UserView(User))

In this example, we customized the list view to display only the username and email columns. We also added a search box to filter users based on their usernames or emails.

Conclusion

Integrating Peewee with Flask-Admin can provide a seamless experience for managing data in your Python web applications. Peewee’s lightweight ORM combined with Flask-Admin’s powerful administrative interface simplifies the process of building and managing your application’s backend.

In this blog post, we explored the basics of integrating Peewee with Flask-Admin. We learned how to define Peewee models, set up Flask-Admin, and customize the administrative views.

Remember, this is just scratching the surface of what you can achieve with Peewee and Flask-Admin. Feel free to explore their documentation for more advanced features and functionalities.

Happy coding!