Muffin-Admin - امتداد لـ Muffin الذي ينفذ واجهات الإدارة
دعم Peewee ORM وMongo وSQLAlchemy Core من خلال Muffin-Rest؛
التصفية والفرز التلقائي للعناصر؛
محتويات
سمات
متطلبات
تثبيت
الاستخدام
المصادقة
الإجراءات المخصصة
خيارات التكوين
تعقب الأخطاء
المساهمة
المساهمين
رخصة
بيثون >= 3.9
يجب تثبيت Muffin-Admin باستخدام النقطة:
نقطة تثبيت الكعك المشرف
مع دعم SQLAlchemy الأساسية:
نقطة تثبيت الكعك المشرف [sqlalchemy]
مع دعم Peewee ORM:
نقطة تثبيت الكعك المشرف[peewee]
تهيئة المشرف:
من muffin_admin import Pluginadmin = Plugin(**options)
تهيئة معالجات الإدارة (مثال لـ Peewee ORM):
من muffin_admin قم باستيراد PWAdminHandler @admin.route class UserResource(PWAdminHandler): """إنشاء مورد إداري لنموذج المستخدم.""" class Meta: """ضبط المورد.""" # نموذج Peewee لنموذج مورد المسؤول = المستخدم # Filters Filters = 'email' , 'created', 'is_active', 'role' # ضبط مخططات التسلسل/إلغاء التسلسل schema_meta = { 'load_only': ('password',), 'dump_only': ('تم الإنشاء'،)، } # الأعمدة لإظهار الأعمدة = 'id'، 'email'، 'is_active'، 'role'، 'created' # Custom Material-UI icon = 'People'
ربط المشرف بتطبيق Muffin:
admin.setup(التطبيق، **الخيارات)
تزيين وظيفة المصادقة باستخدام admin.check_auth
:
@admin.check_authasync def auth(request):"""طريقة التفويض الزائفة. ما عليك سوى التحقق من وجود رمز مصادقة مميز في الطلب."""return request.headers.get('authorization')
تسجيل وظيفة لإرجاع معلومات المستخدم:
@admin.get_identityasync def ident(request):"""الحصول على معلومات المستخدم الحالية."""pk = request.headers.get('authorization')user = User.select().where(User.id == pk) .first()if user:return {"id": user.id, "fullName": user.email}
قم بتنفيذ معالج تسجيل الدخول لصفحة مصادقة رد الفعل القياسية:
@admin.loginasync deflog(request):"""تسجيل الدخول لمستخدم."""data = انتظار request.data()user = User.select().where(User.email == data['username'], User.password == data['password']).first()return ResponseJSON(user وuser.id)
لمزيد من المرجع، تحقق من https://github.com/klen/muffin-admin/tree/develop/examples <examples> في المستودع.
من muffin_admin قم باستيراد PWAdminHandler @admin.route class UserResource(PWAdminHandler): # ... @PWAdminHandler.action('users/disable', view='list') async def Disable_users(self, request, Resources=None): ids = request.query.getall('ids ') # ... @PWAdminHandler.action('users/{id}/admin', view='show') async def mark_admin(self, الطلب، المورد = لا شيء): # ...
اسم | القيمة الافتراضية | وصف |
بادئة | "/admin" | بادئة عنوان URL لـ HTTP للمشرف |
عنوان | "Muffin Admin" | عنوان المشرف |
main_js_url | "{prefix}/main.js" | رابط لملف JS الرئيسي |
custom_js_url | "" | رابط لملف JS المخصص |
custom_css_url | "" | رابط لملف CSS مخصص |
تسجيل الدخول_url | None | عنوان URL HTTP لصفحة تسجيل الدخول المخصصة الخاصة بك |
logout_url | None | عنوان URL HTTP لصفحة تسجيل الخروج المخصصة الخاصة بك |
Menu_sort | True | فرز عناصر القائمة |
auth_storage | "localstorage" | مكان الاحتفاظ بمعلومات الترخيص (التخزين المحلي|ملفات تعريف الارتباط) |
auth_storage_name | muffin_admin_auth | اسم التخزين المحلي/ملف تعريف الارتباط للحصول على معلومات المصادقة |
app_bar_links | [{'url': '/', 'icon': 'Home', 'title': 'Home'}] | روابط اببار |
mutation_mode | "optimistic" | وضع طفرة تحرير React-Admin (متشائم|متفائل|غير قابل للإلغاء) |
إذا كان لديك أي اقتراحات أو تقارير أخطاء أو إزعاجات، فيرجى الإبلاغ عنها إلى متتبع المشكلات على https://github.com/klen/muffin-admin/issues
يتم تطوير Muffin-Admin على: https://github.com/klen/muffin-admin
كلين (كيريل كلينوف)
مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.