跳转到主要内容

Muffin框架的管理界面

项目描述

Muffin-Admin – Muffin的扩展,实现了管理接口

Tests Status PYPI Version Python Versions
https://raw.github.com/klen/muffin-admin/develop/.github/muffin-admin.png

特性

需求

  • python >= 3.9

安装

Muffin-Admin 应使用pip安装

pip install muffin-admin

支持SQLAlchemy Core

pip install muffin-admin[sqlalchemy]

支持Peewee ORM

pip install muffin-admin[peewee]

使用

初始化admin

from muffin_admin import Plugin

admin = Plugin(**options)

初始化admin处理器(示例为Peewee ORM

from muffin_admin import PWAdminHandler

 @admin.route
 class UserResource(PWAdminHandler):

     """Create Admin Resource for the User model."""

     class Meta:

         """Tune the resource."""

         # Peewee Model for the admin resource
         model = User

         # Filters
         filters = 'email', 'created', 'is_active', 'role'

         # Tune serialization/deserialization schemas
         schema_meta = {
             'load_only': ('password',),
             'dump_only': ('created',),
         }

         # Columns to show
         columns = 'id', 'email', 'is_active', 'role', 'created'

         # Custom Material-UI icon
         icon = 'People'

将admin连接到Muffin应用程序

admin.setup(app, **options)

身份验证

使用admin.check_auth装饰身份验证函数

@admin.check_auth
async def auth(request):
    """Fake authorization method. Just checks for an auth token exists in request."""
    return request.headers.get('authorization')

注册一个函数以返回用户信息

@admin.get_identity
async def ident(request):
    """Get current user information."""
    pk = request.headers.get('authorization')
    user = User.select().where(User.id == pk).first()
    if user:
        return {"id": user.id, "fullName": user.email}

实现标准react-admin身份验证页面的登录处理器

@admin.login
async def login(request):
    """Login a user."""
    data = await request.data()
    user = User.select().where(
        User.email == data['username'], User.password == data['password']).first()
    return ResponseJSON(user and user.id)

有关进一步参考,请检查仓库中的 https://github.com/klen/muffin-admin/tree/develop/examples <examples>

自定义操作

from muffin_admin import PWAdminHandler

 @admin.route
 class UserResource(PWAdminHandler):

     # ...

     @PWAdminHandler.action('users/disable', view='list')
     async def disable_users(self, request, resource=None):
         ids = request.query.getall('ids')
         # ...

     @PWAdminHandler.action('users/{id}/admin', view='show')
     async def mark_admin(self, request, resource=None):
         # ...

配置选项

名称

默认值

描述

前缀

"/admin"

管理员的 HTTP URL 前缀

标题

"Muffin Admin"

管理员的标题

main_js_url

"{prefix}/main.js"

主 JS 文件的链接

custom_js_url

""

自定义 JS 文件的链接

custom_css_url

""

自定义 CSS 文件的链接

login_url

None

自定义登录页面的 HTTP URL

logout_url

None

自定义注销页面的 HTTP URL

menu_sort

True

排序菜单项

auth_storage

"localstorage"

保存授权信息的位置(localstorage|cookies)

auth_storage_name

muffin_admin_auth

认证信息的本地存储/Cookie 名称

app_bar_links

[{'url': '/', 'icon': 'Home', 'title': 'Home'}]

应用栏链接

mutation_mode

"optimistic"

React-Admin 编辑突变模式(pessimistic|optimistic|undoable)

错误追踪器

如果您有任何建议、错误报告或烦恼,请向问题跟踪器报告:https://github.com/klen/muffin-admin/issues

贡献

Muffin-Admin 的开发发生在:https://github.com/klen/muffin-admin

贡献者

  • klen (Kirill Klenov)

许可证

许可协议为MIT 协议

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

muffin_admin-3.18.5.tar.gz (1.0 MB 查看散列值)

上传时间

构建分发

muffin_admin-3.18.5-py3-none-any.whl (1.0 MB 查看散列值)

上传时间 Python 3

支持