def register_admin_urls():
return [
url(r'^analytics/', include(urls)),
]
python类include()的实例源码
def register_admin_urls():
return [
url(r'^surveys/', include(admin_urls, app_name='wagtailsurveys', namespace='wagtailsurveys')),
]
def include(module, namespace=None, app_name=None):
from django.conf.urls import include
if django.VERSION < (1,9):
return include(module, namespace, app_name)
else:
return include((module, app_name), namespace)
def get_urls(self):
base_urls = super().get_urls()
router = routers.DefaultRouter()
router.register(r'offergroups', OfferGroupViewSet, base_name='api-offergroup')
custom_urls = [
# API
url(r'^api/', include(router.urls)),
# Benefits
url(r'^benefits/$', self.benefit_list_view.as_view(), name='benefit-list'),
url(r'^benefits/new/$', self.benefit_create_view.as_view(), name='benefit-create'),
url(r'^benefits/(?P<pk>[0-9]+)/$', self.benefit_update_view.as_view(), name='benefit-update'),
url(r'^benefits/(?P<pk>[0-9]+)/delete/$', self.benefit_delete_view.as_view(), name='benefit-delete'),
# Conditions
url(r'^conditions/$', self.condition_list_view.as_view(), name='condition-list'),
url(r'^conditions/new/$', self.condition_create_view.as_view(), name='condition-create'),
url(r'^conditions/new-compound/$', self.compound_condition_create_view.as_view(), name='condition-create-compound'),
url(r'^conditions/(?P<pk>[0-9]+)/$', self.condition_update_view.as_view(), name='condition-update'),
url(r'^conditions/(?P<pk>[0-9]+)/delete/$', self.condition_delete_view.as_view(), name='condition-delete'),
# Offer Groups
url(r'^offer_group/$', self.offergroup_list_view.as_view(), name='offergroup-list'),
url(r'^offer_group/new/$', self.offergroup_create_view.as_view(), name='offergroup-create'),
url(r'^offer_group/(?P<pk>[0-9]+)/$', self.offergroup_update_view.as_view(), name='offergroup-update'),
url(r'^offer_group/(?P<pk>[0-9]+)/delete/$', self.offergroup_delete_view.as_view(), name='offergroup-delete'),
]
return base_urls + self.post_process_urls(custom_urls)
def get_urls(self):
from django.conf.urls import url, include
from xadmin.views.base import BaseAdminView
if settings.DEBUG:
self.check_dependencies()
def wrap(view, cacheable=False):
def wrapper(*args, **kwargs):
return self.admin_view(view, cacheable)(*args, **kwargs)
return update_wrapper(wrapper, view)
# Admin-site-wide views.
urlpatterns = [
url(r'^jsi18n/$', wrap(self.i18n_javascript, cacheable=True), name='jsi18n')
]
# Registed admin views
# inspect[isclass]: Only checks if the object is a class. With it lets you create an custom view that
# inherits from multiple views and have more of a metaclass.
urlpatterns += [
url(path, wrap(self.create_admin_view(clz_or_func)) if inspect.isclass(clz_or_func) and issubclass(clz_or_func, BaseAdminView) else include(clz_or_func(self)),
name=name) for path, clz_or_func, name in self._registry_views
]
# Add in each model's views.
for model, admin_class in self._registry.iteritems():
view_urls = [url(
path, wrap(
self.create_model_admin_view(clz, model, admin_class)),
name=name % (model._meta.app_label, model._meta.model_name))
for path, clz, name in self._registry_modelviews]
urlpatterns += [
url(r'^%s/%s/' % ( model._meta.app_label, model._meta.model_name), include(view_urls))
]
return urlpatterns
def apply_suffix_patterns(urlpatterns, suffix_pattern, suffix_required):
ret = []
for urlpattern in urlpatterns:
if isinstance(urlpattern, RegexURLResolver):
# Set of included URL patterns
regex = urlpattern.regex.pattern
namespace = urlpattern.namespace
app_name = urlpattern.app_name
kwargs = urlpattern.default_kwargs
# Add in the included patterns, after applying the suffixes
patterns = apply_suffix_patterns(urlpattern.url_patterns,
suffix_pattern,
suffix_required)
ret.append(url(regex, include(patterns, namespace, app_name), kwargs))
else:
# Regular URL pattern
regex = urlpattern.regex.pattern.rstrip('$').rstrip('/') + suffix_pattern
view = urlpattern._callback or urlpattern._callback_str
kwargs = urlpattern.default_args
name = urlpattern.name
# Add in both the existing and the new urlpattern
if not suffix_required:
ret.append(urlpattern)
ret.append(url(regex, view, kwargs, name))
return ret
def format_suffix_patterns(urlpatterns, suffix_required=False, allowed=None):
"""
Supplement existing urlpatterns with corresponding patterns that also
include a '.format' suffix. Retains urlpattern ordering.
urlpatterns:
A list of URL patterns.
suffix_required:
If `True`, only suffixed URLs will be generated, and non-suffixed
URLs will not be used. Defaults to `False`.
allowed:
An optional tuple/list of allowed suffixes. eg ['json', 'api']
Defaults to `None`, which allows any suffix.
"""
suffix_kwarg = api_settings.FORMAT_SUFFIX_KWARG
if allowed:
if len(allowed) == 1:
allowed_pattern = allowed[0]
else:
allowed_pattern = '(%s)' % '|'.join(allowed)
suffix_pattern = r'\.(?P<%s>%s)/?$' % (suffix_kwarg, allowed_pattern)
else:
suffix_pattern = r'\.(?P<%s>[a-z0-9]+)/?$' % suffix_kwarg
return apply_suffix_patterns(urlpatterns, suffix_pattern, suffix_required)
def collect_urls():
urls = []
for app in collect_applications():
try:
urls.append(url(r'^', include('{}.api.urls'.format(app))))
except ImportError:
pass
return urls
def register_admin_urls():
return [
url(r'^media/', include(admin_urls, app_name='wagtailmedia', namespace='wagtailmedia')),
]
def urls(self):
ROOT_ROUTE = getattr(settings, 'API_ENDPOINT', 'api')
return [
url(r'^{root_route}$'.format(root_route=ROOT_ROUTE), self.generate_root),
url(r'^{root_route}/'.format(root_route=ROOT_ROUTE), include(self.register_models().urls, namespace='api')),
]
def default_urlpatterns(provider):
login_view = import_attribute(
provider.get_package() + '.views.oauth2_login')
callback_view = import_attribute(
provider.get_package() + '.views.oauth2_callback')
urlpatterns = [
url('^login/$',
login_view, name=provider.id + "_login"),
url('^login/callback/$',
callback_view, name=provider.id + "_callback"),
]
return [url('^' + provider.get_slug() + '/', include(urlpatterns))]
def default_urlpatterns(provider):
login_view = import_attribute(
provider.get_package() + '.views.oauth_login')
callback_view = import_attribute(
provider.get_package() + '.views.oauth_callback')
urlpatterns = [
url('^login/$',
login_view, name=provider.id + "_login"),
url('^login/callback/$', callback_view,
name=provider.id + "_callback"),
]
return [url('^' + provider.get_slug() + '/', include(urlpatterns))]
def register_admin_urls():
return [
url(r'^videos/', include(urls, namespace='wagtailvideos', app_name='wagtailvideos')),
]
def urls(self):
"""
?? xadmin site ?urls?????django?urls??????????????Django? ``urls.py`` ????????::
from django.conf.urls import patterns, include, url
import xadmin
xadmin.autodiscover()
urlpatterns = patterns('',
url(r'', include(xadmin.site.urls)),
)
"""
return self.get_urls(), self.name, self.app_name
def register_admin_urls():
return [
url(r'^socialfeed/', include(urls, app_name='wagtailsocialfeed',
namespace='wagtailsocialfeed')),
]
def get_urls(self):
router = routers.DefaultRouter()
router.register(r'access-rules', AccessRuleViewSet)
router.register(r'meta-graph', MetaGraphView, base_name='metagraph')
info = self.model._meta.app_label, self.model._meta.model_name
urlpatterns = [
url(r'^neo4j/nodelist/$', self.get_nodelist_api_view, name='%s_%s_nodelist' % info), # Deprecated
url(r'^neo4j/', include(router.urls))
] + super(AccessRuleAdmin, self).get_urls()
return urlpatterns
def get_urls(self):
from django.conf.urls import url, include
from xadmin.views.base import BaseAdminView
if settings.DEBUG:
self.check_dependencies()
def wrap(view, cacheable=False):
def wrapper(*args, **kwargs):
return self.admin_view(view, cacheable)(*args, **kwargs)
return update_wrapper(wrapper, view)
# Admin-site-wide views.
urlpatterns = [
url(r'^jsi18n/$', wrap(self.i18n_javascript, cacheable=True), name='jsi18n')
]
# Registed admin views
# inspect[isclass]: Only checks if the object is a class. With it lets you create an custom view that
# inherits from multiple views and have more of a metaclass.
urlpatterns += [
url(path, wrap(self.create_admin_view(clz_or_func)) if inspect.isclass(clz_or_func) and issubclass(clz_or_func, BaseAdminView) else include(clz_or_func(self)),
name=name) for path, clz_or_func, name in self._registry_views
]
# Add in each model's views.
for model, admin_class in self._registry.iteritems():
view_urls = [url(
path, wrap(
self.create_model_admin_view(clz, model, admin_class)),
name=name % (model._meta.app_label, model._meta.model_name))
for path, clz, name in self._registry_modelviews]
urlpatterns += [
url(r'^%s/%s/' % ( model._meta.app_label, model._meta.model_name), include(view_urls))
]
return urlpatterns
def get_urls(self):
"""
Override the default get_urls() method to move default Oscar promotions
from location r'' to r'^promotions/' to free up space for Wagtail's
wagtailcore serving mechanism.
"""
urls = super(OscarApplication, self).get_urls()[:-1]
urls.append(url(r'^promotions/', include(self.promotions_app.urls)),)
return urls
def get_urls(self):
from django.conf.urls import url, include
from xadmin.views.base import BaseAdminView
if settings.DEBUG:
self.check_dependencies()
def wrap(view, cacheable=False):
def wrapper(*args, **kwargs):
return self.admin_view(view, cacheable)(*args, **kwargs)
return update_wrapper(wrapper, view)
# Admin-site-wide views.
urlpatterns = [
url(r'^jsi18n/$', wrap(self.i18n_javascript, cacheable=True), name='jsi18n')
]
# Registed admin views
# inspect[isclass]: Only checks if the object is a class. With it lets you create an custom view that
# inherits from multiple views and have more of a metaclass.
urlpatterns += [
url(path, wrap(self.create_admin_view(clz_or_func)) if inspect.isclass(clz_or_func) and issubclass(clz_or_func, BaseAdminView) else include(clz_or_func(self)),
name=name) for path, clz_or_func, name in self._registry_views
]
# Add in each model's views.
for model, admin_class in self._registry.iteritems():
view_urls = [url(
path, wrap(
self.create_model_admin_view(clz, model, admin_class)),
name=name % (model._meta.app_label, model._meta.model_name))
for path, clz, name in self._registry_modelviews]
urlpatterns += [
url(r'^%s/%s/' % ( model._meta.app_label, model._meta.model_name), include(view_urls))
]
return urlpatterns
def test_flagged_url_true_include_true(self):
response = self.get_url_response('/include/included-url')
self.assertContains(response, 'view')