Python

Flask Admin

수노 SUNHO 2019. 6. 5. 01:32

사내 관리자 페이지가 필요해졌다.

이미 있지만 프론트엔드 개발자 없이 만들 수 있는, 운영팀이 데이터를 직접 수정할 수 있어야하는 페이지가 필요해졌다.

 

예전에 Django 튜토리얼을 따라하다가 알게된 Django Admin이 딱! 생각났다.

회사에서는 Flask를 쓰기 때문에 Django Admin을 쓰진 못하지만 Flask에도 분명 따라 만든게 있을거라 생각했다.

 

 

역시 존재한다! Flask Admin!

https://flask-admin.readthedocs.io/en/latest/

 

Flask-Admin — flask-admin 1.5.3 documentation

Flask-Admin Why Flask? As a micro-framework, Flask lets you build web services with very little overhead. It offers freedom for you, the designer, to implement your project in a way that suits your particular application. Why Flask-Admin? In a world of mic

flask-admin.readthedocs.io

도큐먼트에 기본적인 설치 부분이 없어서 믿어도 되는가 싶었지만, 괜찮다. Github 레포에 있으니까!

도큐먼트를 열심히 만들지 않았을뿐, 자기들 나름대로 활용할 수 있는 다양한 예시 코드들을 만들어놨다.

 

https://github.com/flask-admin/flask-admin

 

flask-admin/flask-admin

Simple and extensible administrative interface framework for Flask - flask-admin/flask-admin

github.com

 

 

오늘은 맛보기로 설치, 테마 설정, 다양한 활용 예시를 보도록 하겠다.

 


 

설치

pip install flask-admin

 

기본 설정

from flask import Flask
from flask_admin import Admin

app = Flask(__name__)

# set optional bootswatch theme
app.config['FLASK_ADMIN_SWATCH'] = 'cerulean'

# set flask_admin
admin = Admin(app, name='microblog', template_mode='bootstrap3')

@app.route('/')
def hello_world():
    return 'Hello World!'


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

이렇게 간단히 입력만해주고 Flask를 실행해준 다음, http://127.0.0.1:5000/admin 들어가면 바로 확인 가능하다.

 

 

테마 변경

테마가 당연히 바꾸고 싶어질 것이다! 백엔드 개발자여도 이쁜거 좋아한다.

 

https://github.com/flask-admin/flask-admin/tree/master/flask_admin/static/bootstrap/bootstrap3/swatch

레포지토리 이 부분에 테마 목록을 확인할 수 있다. (이 부분에서 내가 프알못이란 티가 팍팍나는 것 같다)

 

아래 사이트에 들어가면 테마를 직접 눈으로 보고 선택할 수 있다.

https://bootswatch.com/

 

Bootswatch: Free themes for Bootstrap

Customizable Changes are contained in just two SASS files, enabling further customization and ensuring forward compatibility.

bootswatch.com

 

app.config['FLASK_ADMIN_SWATCH'] = 'theme name'

마음에 드는 테마를 찾았다면 이 부분에 테마 이름만 넣어주면 된다.

 

 

 

 

다양한 활용 예시

Github 레포에 SQLAlchemy, Auth 등 다양한 활용 예시들이 있다.

https://github.com/flask-admin/flask-admin/tree/7fa26ab227868ff7512bb25c26a30fd7d69184bc/examples

 

나는 SQLAlchemy를 쓰기 때문에 예제 코드 그대로 따라해봤는데 잘됐다.

 

모델링만 해주면 Admin 페이지에서 CRUD 작업을 처리해준다.

Delete는 함부로 하면 안되기 때문에 DELETE 기능을 끄는 옵션도 있다.

 

SQLAlchemy 뿐만 아니라 다른 것도 해보고 실제로 활용도가 높을지 제안해봐야겠다!