اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

لعرض كل المسارات الموجودة في تطبيق مبني باستخدام إطار العمل جانغُو توجَد عدة طُرق لذلك منها :

  • باستخدام الدالة get_resolver
    python manage.py shell
    >>> from django.core.urlresolvers import get_resolver# نقوم باستدعاء الدالة
    >>> set(v[1] for k,v in get_resolver().reverse_dict.items()) #يقوم بعرض كل المسارات

     

  • باستخدام التطبيق django-extensions: بعد تنصيب التطبيق باستخدام

    pip install django-extensions

    وإضافته إلى قائمة التطبيقات في ملف الإعدادات

    INSTALLED_APPS = (
    	...
    	'django_extensions',
    	...
    )

    يُمكنك طبع المسارات باستخدام الأمر

    python manage.py show_urls

     

  • 0
نشر

يمكنك القيام بذلك أيضاً من خلال الكود التالي (لنسخ جانغو Django >= 2.0)، حيث يقوم هذا الكود بطباعة جميع عناوين URL، وعلى عكس بعض الحلول الأخرى، فإنه سيطبع المسار الكامل وليس فقط العقدة الأخيرة:

from django.conf import settings
from django.urls import URLPattern, URLResolver
urlconf = __import__(settings.ROOT_URLCONF, {}, {}, [''])
def list_urls(lis, acc=None):
    if acc is None:
        acc = []
    if not lis:
        return
    l = lis[0]
    if isinstance(l, URLPattern):
        yield acc + [str(l.pattern)]
    elif isinstance(l, URLResolver):
        yield from list_urls(l.url_patterns, acc + [str(l.pattern)])
    yield from list_urls(lis[1:], acc)
for p in list_urls(urlconf.urlpatterns):
    print(''.join(p))

ويكون الخرج بالشكل:

admin/
admin/login/
admin/logout/
admin/password_change/
admin/password_change/done/
admin/jsi18n/
admin/r/<int:content_type_id>/<path:object_id>/
admin/auth/group/
admin/auth/group/add/
admin/auth/group/autocomplete/
admin/auth/group/<path:object_id>/history/
admin/auth/group/<path:object_id>/delete/
admin/auth/group/<path:object_id>/change/
admin/auth/group/<path:object_id>/
admin/auth/user/<id>/password/
admin/auth/user/
... etc, etc

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...