python类include()的实例源码

utils.py 文件源码 项目:lepo 作者: akx 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_urlpatterns(handler_module):
    # NB: This could just as well be your `urls.py` – it's here to make testing various handler
    #     configurations easier.

    router = Router.from_file(os.path.join(os.path.dirname(__file__), 'tests', 'petstore-expanded.yaml'))
    router.add_handlers(handler_module)
    validate_router(router)
    router_urls = router.get_urls(
        decorate=(csrf_exempt,),
        optional_trailing_slash=True,
    )

    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^api/', include(router_urls, 'api')),
        url(r'^api/', include(get_docs_urls(router, 'api-docs'), 'api-docs')),
    ]
    return urlpatterns
documentation.py 文件源码 项目:sdining 作者: Lurance 项目源码 文件源码 阅读 38 收藏 0 点赞 0 评论 0
def include_docs_urls(
        title=None, description=None, schema_url=None, public=True,
        patterns=None, generator_class=SchemaGenerator):
    docs_view = get_docs_view(
        title=title,
        description=description,
        schema_url=schema_url,
        public=public,
        patterns=patterns,
        generator_class=generator_class,
    )
    schema_js_view = get_schemajs_view(
        title=title,
        description=description,
        schema_url=schema_url,
        public=public,
        patterns=patterns,
        generator_class=generator_class,
    )
    urls = [
        url(r'^$', docs_view, name='docs-index'),
        url(r'^schema.js$', schema_js_view, name='schema-js')
    ]
    return include(urls, namespace='api-docs')
test_urlresolver.py 文件源码 项目:a4-product 作者: liqd 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_partner_patterns_instance_ns(partner_factory):
    partner = partner_factory(slug='automatic_partner',
                              auto_set_partner=False)
    set_partner(partner)
    urlconf = (partner_patterns(
        url(r'^ns/', include(base_urlconf, namespace='instance-ns'))
    ),)

    url_ = reverse('instance-ns:static-url', urlconf)
    assert url_ == '/automatic_partner/ns/static/'

    url_ = reverse('instance-ns:static-url', urlconf, kwargs=dict(
        partner_slug='manual_partner'))
    assert url_ == '/manual_partner/ns/static/'

    url_ = reverse('instance-ns:dynamic-url', urlconf, kwargs=dict(pk=1))
    assert url_ == '/automatic_partner/ns/dynamic/1/'

    url_ = reverse('instance-ns:dynamic-url', urlconf, kwargs=dict(
        partner_slug='manual_partner', pk=1))
    assert url_ == '/manual_partner/ns/dynamic/1/'

    url_ = reverse('instance-ns:dynamic-url', urlconf, args=(1,))
    assert url_ == '/automatic_partner/ns/dynamic/1/'
test_router.py 文件源码 项目:django-binder 作者: CodeYellowBV 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_register_adds_default_routes_from_modelname(self):
        class ParentView(ModelView):
            pass

        class FooView(ParentView):
            model = FooModel

        class BarView(ParentView):
            model = BarModel

        r = Router()
        r.register(ParentView)
        urls_module.urlpatterns = [url(r'^', include(r.urls))]

        self.assertTrue(is_valid_path('/foo_model/', urls_module))
        self.assertTrue(is_valid_path('/foo_model/1/', urls_module))
        self.assertTrue(is_valid_path('/bar_model/12345/', urls_module))
        self.assertFalse(is_valid_path('/bar_model/lalala/', urls_module))
        self.assertFalse(is_valid_path('/another_model/', urls_module))
test_router.py 文件源码 项目:django-binder 作者: CodeYellowBV 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_register_adds_custom_route_names(self):
        class ParentView(ModelView):
            pass

        class FooView(ParentView):
            model = FooModel
            route = 'foo'

        class BarView(ParentView):
            model = BarModel
            # Explicit Route objects should also be accepted
            route = Route('bar')

        r = Router()
        r.register(ParentView)
        urls_module.urlpatterns = [url(r'^', include(r.urls))]

        self.assertTrue(is_valid_path('/foo/', urls_module))
        self.assertTrue(is_valid_path('/foo/1/', urls_module))
        self.assertTrue(is_valid_path('/bar/12345/', urls_module))

        # Default named routes should not be there
        self.assertFalse(is_valid_path('/foo_model/1/', urls_module))
        self.assertFalse(is_valid_path('/bar_model/1/', urls_module))
test_router.py 文件源码 项目:django-binder 作者: CodeYellowBV 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def test_register_obeys_custom_route_config(self):
        class ParentView(ModelView):
            pass

        class FooView(ParentView):
            model = FooModel
            route = Route('foo', list_endpoint=False)

        class BarView(ParentView):
            model = BarModel
            route = Route('bar', detail_endpoint=False)

        r = Router()
        r.register(ParentView)
        urls_module.urlpatterns = [url(r'^', include(r.urls))]

        self.assertFalse(is_valid_path('/foo/', urls_module))
        self.assertTrue(is_valid_path('/foo/1/', urls_module))

        self.assertTrue(is_valid_path('/bar/', urls_module))
        self.assertFalse(is_valid_path('/bar/1/', urls_module))
test_router.py 文件源码 项目:django-binder 作者: CodeYellowBV 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_register_adds_default_routes_from_modelname(self):
        class ParentView(ModelView):
            pass

        class FooView(ParentView):
            model = FooModel

        class BarView(ParentView):
            model = BarModel

        r = Router()
        r.register(ParentView)
        urls_module.urlpatterns = [url(r'^', include(r.urls))]

        self.assertTrue(is_valid_path('/foo_model/', urls_module))
        self.assertTrue(is_valid_path('/foo_model/1/', urls_module))
        self.assertTrue(is_valid_path('/bar_model/12345/', urls_module))
        self.assertFalse(is_valid_path('/bar_model/lalala/', urls_module))
        self.assertFalse(is_valid_path('/another_model/', urls_module))
test_router.py 文件源码 项目:django-binder 作者: CodeYellowBV 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def test_register_adds_custom_route_names(self):
        class ParentView(ModelView):
            pass

        class FooView(ParentView):
            model = FooModel
            route = 'foo'

        class BarView(ParentView):
            model = BarModel
            # Explicit Route objects should also be accepted
            route = Route('bar')

        r = Router()
        r.register(ParentView)
        urls_module.urlpatterns = [url(r'^', include(r.urls))]

        self.assertTrue(is_valid_path('/foo/', urls_module))
        self.assertTrue(is_valid_path('/foo/1/', urls_module))
        self.assertTrue(is_valid_path('/bar/12345/', urls_module))

        # Default named routes should not be there
        self.assertFalse(is_valid_path('/foo_model/1/', urls_module))
        self.assertFalse(is_valid_path('/bar_model/1/', urls_module))
test_ussd_app_creation.py 文件源码 项目:ussd_airflow 作者: mwaaas 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_app_creation(self):
        app_name = 'TestUssdApp'
        call_command('create_ussd_app', app_name)

        ussd_url = [
            url(r'^ussd/', include('TestUssdApp.urls'))
        ]

        urls.urlpatterns += ussd_url

        end_point_url = "http://localhost:8081/ussd/TestUssdApp_ussd_gateway"
        payload = {
            "phoneNumber": "0717199135", "sessionId": "12", "text": "1", "language": "en", "serviceCode": "200"}

        response = self.client.post(end_point_url,
                                    data=json.dumps(payload),
                                    content_type="application/json",)
        self.assertEqual(response.content,
                         b'END Example Quit Screen. Delete this and define your own customer journey screens.')
        self.assertEqual(response.status_code, 200)
        print(response.status_code)
        os.system('rm -r TestUssdApp')  # Remove created app. Clean up
plugin_pool.py 文件源码 项目:DjangoCMS 作者: farhan711 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_patterns(self):
        self.discover_plugins()

        # We want untranslated name of the plugin for its slug so we deactivate translation
        lang = get_language()
        deactivate_all()

        try:
            url_patterns = []
            for plugin in self.get_all_plugins():
                p = plugin()
                slug = slugify(force_text(normalize_name(p.__class__.__name__)))
                url_patterns += [
                    url(r'^plugin/%s/' % (slug,), include(p.plugin_urls)),
                ]
        finally:
            # Reactivate translation
            activate(lang)

        return url_patterns
urls.py 文件源码 项目:website 作者: hackerspace-ntnu 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def get_plugin_urls():
        urlpatterns = []
        for plugin in list(registry.get_plugins().values()):
            slug = getattr(plugin, 'slug', None)
            if slug:
                article_urlpatterns = plugin.urlpatterns.get('article', [])
                urlpatterns += [
                    url(r'^(?P<article_id>\d+)/plugin/' + slug + '/',
                        include(article_urlpatterns)),
                    url(r'^(?P<path>.+/|)_plugin/' + slug + '/',
                        include(article_urlpatterns)),
                ]
                root_urlpatterns = plugin.urlpatterns.get('root', [])
                urlpatterns += [
                    url(r'^_plugin/' + slug + '/', include(root_urlpatterns)),
                ]
        return urlpatterns
api.py 文件源码 项目:mes 作者: osess 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def urls(self):
        """
        Provides URLconf details for the ``Api`` and all registered
        ``Resources`` beneath it.
        """
        pattern_list = [
            url(r"^(?P<api_name>%s)%s$" % (self.api_name, trailing_slash()), self.wrap_view('top_level'), name="api_%s_top_level" % self.api_name),
        ]

        for name in sorted(self._registry.keys()):
            self._registry[name].api_name = self.api_name
            pattern_list.append((r"^(?P<api_name>%s)/" % self.api_name, include(self._registry[name].urls)))

        urlpatterns = self.prepend_urls()

        overridden_urls = self.override_urls()
        if overridden_urls:
            warnings.warn("'override_urls' is a deprecated method & will be removed by v1.0.0. Please rename your method to ``prepend_urls``.")
            urlpatterns += overridden_urls

        urlpatterns += patterns('',
            *pattern_list
        )
        return urlpatterns
urls.py 文件源码 项目:django-allauth-cas 作者: aureplop 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def default_urlpatterns(provider):
    package = provider.get_package()

    login_view = import_attribute(package + '.views.login')
    callback_view = import_attribute(package + '.views.callback')
    logout_view = import_attribute(package + '.views.logout')

    urlpatterns = [
        url('^login/$',
            login_view, name=provider.id + '_login'),
        url('^login/callback/$',
            callback_view, name=provider.id + '_callback'),
        url('^logout/$',
            logout_view, name=provider.id + '_logout'),
    ]

    return [url('^' + provider.get_slug() + '/', include(urlpatterns))]
django_rest.py 文件源码 项目:apimas 作者: grnet 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def construct_endpoint(self, instance, spec, loc, context):
        """
        Constructor of '.endpoint' predicate.

        It gets the generated views and it maps them with urlpatterns which
        will later be used from django.
        """
        parent_name = context.get('parent_name')
        collections = self.get_structural_elements(instance)
        if not collections:
            raise utils.DRFAdapterException(
                '.endpoint without any collection found.', loc=loc)
        router = routers.DefaultRouter()
        for collection in collections:
            collection_spec = instance.get(collection)
            view = collection_spec.get(self.ADAPTER_CONF)
            basename = parent_name + '_' + collection
            router.register(collection, view, base_name=basename)
        self.urls[parent_name] = url(
            r'^' + parent_name + '/', include(router.urls))
app.py 文件源码 项目:oscar-wagtail-demo 作者: pgovers 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
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
base.py 文件源码 项目:mos-horizon 作者: Mirantis 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def _decorated_urls(self):
        urlpatterns = self._get_default_urlpatterns()

        # Apply access controls to all views in the patterns
        permissions = getattr(self, 'permissions', [])
        _decorate_urlconf(urlpatterns, require_perms, permissions)
        _decorate_urlconf(urlpatterns, _current_component, panel=self)

        # Return the three arguments to django.conf.urls.include
        return urlpatterns, self.slug, self.slug
base.py 文件源码 项目:mos-horizon 作者: Mirantis 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def _decorated_urls(self):
        urlpatterns = self._get_default_urlpatterns()

        default_panel = None

        # Add in each panel's views except for the default view.
        for panel in self._registry.values():
            if panel.slug == self.default_panel:
                default_panel = panel
                continue
            url_slug = panel.slug.replace('.', '/')
            urlpatterns.append(url(r'^%s/' % url_slug,
                                   include(panel._decorated_urls)))
        # Now the default view, which should come last
        if not default_panel:
            raise NotRegistered('The default panel "%s" is not registered.'
                                % self.default_panel)
        urlpatterns.append(url(r'', include(default_panel._decorated_urls)))

        # Require login if not public.
        if not self.public:
            _decorate_urlconf(urlpatterns, require_auth)
        # Apply access controls to all views in the patterns
        permissions = getattr(self, 'permissions', [])
        _decorate_urlconf(urlpatterns, require_perms, permissions)
        _decorate_urlconf(urlpatterns, _current_component, dashboard=self)

        # Return the three arguments to django.conf.urls.include
        return urlpatterns, self.slug, self.slug
base.py 文件源码 项目:mos-horizon 作者: Mirantis 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def _urls(self):
        """Constructs the URLconf for Horizon from registered Dashboards."""
        urlpatterns = self._get_default_urlpatterns()
        self._autodiscover()

        # Discover each dashboard's panels.
        for dash in self._registry.values():
            dash._autodiscover()

        # Load the plugin-based panel configuration
        self._load_panel_customization()

        # Allow for override modules
        if self._conf.get("customization_module", None):
            customization_module = self._conf["customization_module"]
            bits = customization_module.split('.')
            mod_name = bits.pop()
            package = '.'.join(bits)
            mod = import_module(package)
            try:
                before_import_registry = copy.copy(self._registry)
                import_module('%s.%s' % (package, mod_name))
            except Exception:
                self._registry = before_import_registry
                if module_has_submodule(mod, mod_name):
                    raise

        # Compile the dynamic urlconf.
        for dash in self._registry.values():
            urlpatterns.append(url(r'^%s/' % dash.slug,
                                   include(dash._decorated_urls)))

        # Return the three arguments to django.conf.urls.include
        return urlpatterns, self.namespace, self.slug
app.py 文件源码 项目:django-oscar-wagtail 作者: LabD 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get_urls(self):
        urlpatterns = [
            url(r'', include(wagtail_urls)),
        ]

        return self.post_process_urls(urlpatterns)
sites.py 文件源码 项目:django-admino 作者: erdem 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def get_urls(self):
        urlpatterns = super(AdminoSite, self).get_urls()
        valid_app_labels = []
        for model, model_admin in self._registry.items():
            api_urlpatterns = [
                url(r'^api/%s/%s/' % (model._meta.app_label, model._meta.model_name), include(model_admin.api_urls)),
            ]
            urlpatterns = urlpatterns + api_urlpatterns
            if model._meta.app_label not in valid_app_labels:
                valid_app_labels.append(model._meta.app_label)
        return urlpatterns
sites.py 文件源码 项目:MxOnline 作者: myTeemo 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
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
app.py 文件源码 项目:site 作者: alphageek-xyz 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def get_urls(self):
        return [
            url(r'^', include('django.contrib.auth.urls')),
            url(r'^parameters/edit/', self.user_parameters_update_view.as_view(), name='account-parameters'),
            url(r'^password/edit/', self.user_password_update_view.as_view(), name='account-password'),
            url(r'^register/', self.user_create_view.as_view(), name='register'),
            url(r'^unregister/$', self.user_delete_view.as_view(), name='unregister'),
        ]
app.py 文件源码 项目:site 作者: alphageek-xyz 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def get_urls(self):
        urls = super(AGCSForumApp, self).get_urls()
        return urls + [
            url(r'^account/', include(self.auth_app.urls)),
        ]
test_permissions.py 文件源码 项目:baya 作者: counsyl 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def test_include(self):
        """Make sure requires(A)(include(my_app.urls)) works."""
        decorated_include = requires(A)(include(nested_urls2))
        for pattern in decorated_include[0].urlpatterns:
            [cell] = [cell for cell in pattern.resolve.__closure__
                      if isinstance(cell.cell_contents, requires)]
            requirer = cell.cell_contents
            self.assertTrue(
                PermissionChecker(['a']).visit(requirer.gate.get_requires))
            self.assertTrue(
                PermissionChecker(['a']).visit(requirer.gate.post_requires))
sites.py 文件源码 项目:baya 作者: counsyl 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def get_urls(self):
        """Ensure that urls included in get_urls() are behind requires().

        We need to fix the include() logic for admin URLs. Django admin isn't
        very extensible, so we have to call super, remove the url patterns
        for model_admins that have a _gate, and replace the pattern with
        a properly built include behind the model admin's gate.

        Would be a lot easier if django exposed something like
        get_patterns_for_app(app_label), but noooooo.
        """
        # We have to maintain the URL ordering due to the way URLs are resolved
        # TODO - Test this, can lead to heisenbugs
        urls = OrderedDict((urlp.regex.pattern, urlp) for urlp in
                           super(NestedGroupsAdminSite, self).get_urls())
        for model, model_admin in self._get_admins_with_gate():
            if hasattr(model._meta, 'module_name'):
                model_name = model._meta.module_name
            elif hasattr(model._meta, 'model_name'):
                model_name = model._meta.model_name
            else:
                raise ValueError(
                    "Model Admin is missing a module or model name.")
            pattern = (
                r'^%s/%s/' %
                (model._meta.app_label, model_name))
            urls[pattern] = url(
                pattern,
                requires(get=model_admin._gate.get_requires,
                         post=model_admin._gate.post_requires)(
                             include(model_admin.urls)))
        return list(urls.values())
test_permissions.py 文件源码 项目:baya 作者: counsyl 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def test_include(self):
        """Make sure requires(A)(include(my_app.urls)) works."""
        decorated_include = requires(A)(include(nested_urls2))
        for pattern in decorated_include[0].urlpatterns:
            [cell] = [cell for cell in pattern.resolve.__closure__
                      if isinstance(cell.cell_contents, requires)]
            requirer = cell.cell_contents
            self.assertTrue(
                PermissionChecker(['a']).visit(requirer.gate.get_requires))
            self.assertTrue(
                PermissionChecker(['a']).visit(requirer.gate.post_requires))
sites.py 文件源码 项目:baya 作者: counsyl 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def get_urls(self):
        """Ensure that urls included in get_urls() are behind requires().

        We need to fix the include() logic for admin URLs. Django admin isn't
        very extensible, so we have to call super, remove the url patterns
        for model_admins that have a _gate, and replace the pattern with
        a properly built include behind the model admin's gate.

        Would be a lot easier if django exposed something like
        get_patterns_for_app(app_label), but noooooo.
        """
        # We have to maintain the URL ordering due to the way URLs are resolved
        # TODO - Test this, can lead to heisenbugs
        urls = OrderedDict((urlp.regex.pattern, urlp) for urlp in
                           super(NestedGroupsAdminSite, self).get_urls())
        for model, model_admin in self._get_admins_with_gate():
            if hasattr(model._meta, 'module_name'):
                model_name = model._meta.module_name
            elif hasattr(model._meta, 'model_name'):
                model_name = model._meta.model_name
            else:
                raise ValueError(
                    "Model Admin is missing a module or model name.")
            pattern = (
                r'^%s/%s/' %
                (model._meta.app_label, model_name))
            urls[pattern] = url(
                pattern,
                requires(get=model_admin._gate.get_requires,
                         post=model_admin._gate.post_requires)(
                             include(model_admin.urls)))
        return list(urls.values())
compat.py 文件源码 项目:sdining 作者: Lurance 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
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)
wagtail_hooks.py 文件源码 项目:wagtail-relevancy 作者: takeflight 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def register_admin_urls():
    return [
        url(r'^relevancy/', include(urls)),
    ]
wagtail_hooks.py 文件源码 项目:wagtail-experiments 作者: torchbox 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def register_admin_urls():
    return [
        url(r'^experiments/', include(admin_urls, app_name='experiments', namespace='experiments')),
    ]


问题


面经


文章

微信
公众号

扫码关注公众号