Python django.contrib.staticfiles.storage.staticfiles_storage 模块,url() 实例源码

我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用django.contrib.staticfiles.storage.staticfiles_storage.url()

项目:mos-horizon    作者:Mirantis    | 项目源码 | 文件源码
def find_asset(theme, asset):

    theme_path = ''
    for name, label, path in hz_themes.get_themes():
        if theme == name:
            theme_path = path

    theme_path = os.path.join(settings.ROOT_PATH, theme_path)

    # If there is a 'static' subdir of the theme, then use
    # that as the theme's asset root path
    static_path = os.path.join(theme_path, 'static')
    if os.path.exists(static_path):
        theme_path = static_path

    # The full path to the asset requested
    asset_path = os.path.join(theme_path, asset)
    if os.path.exists(asset_path):
        return_path = os.path.join(hz_themes.get_theme_dir(), theme, asset)
    else:
        return_path = os.path.join('dashboard', asset)

    return staticfiles_storage.url(pathname2url(return_path))
项目:intake    作者:codeforamerica    | 项目源码 | 文件源码
def environment(**options):
    env = Environment(**options)
    env.globals.update({
        'static': loudfail_static,
        'url': reverse,
        "content": "project.content.constants",
        "linkify": "project.jinja2.linkify",
        "current_local_time": "project.jinja2.current_local_time",
        "namify": "project.jinja2.namify",
        "url_with_ids": "project.jinja2.url_with_ids",
        "oxford_comma": "project.jinja2.oxford_comma",
        "contact_info_to_html": "project.jinja2.contact_info_to_html",
        "to_json": "project.jinja2.to_json",
        "humanize": "project.jinja2.humanize",
        "contact_method_verbs": "project.jinja2.contact_method_verbs",
        "format_phone_number": "project.jinja2.format_phone_number",
        "settings": "django.conf.settings",
        "local_time": "intake.utils.local_time",
    })
    return env
项目:tumanov_castleoaks    作者:Roamdev    | 项目源码 | 文件源码
def network_icon(self, obj):
        icons_url = staticfiles_storage.url('social_networks/img/admin_icons.svg')
        try:
            icon_code, icon_title = next((
                network_tuple
                for network_tuple in conf.ALL_NETWORKS
                if network_tuple[0] == obj.network
            ))
        except StopIteration:
            return

        offset = 100 / (len(SPRITE_ICONS) - 1) * SPRITE_ICONS.index(icon_code)
        return """
        <span style="display:inline-block; width:21px; height:20px; margin:0;
        background:url(%s) %0.4f%% 0; vertical-align:middle;" title="%s"/>""" % (
            icons_url, offset, icon_title
        )
项目:kolibri    作者:learningequality    | 项目源码 | 文件源码
def render_to_page_load_async_html(self):
        """
        Generates script tag containing Javascript to register an
        asynchronously loading Javascript FrontEnd plugin against the core
        front-end Kolibri app. It passes in the events that would trigger
        loading the plugin, both multi-time firing events (events) and one time
        firing events (once).

        It also passes in information about the methods that the events should
        be delegated to once the plugin has loaded.

        TODO: What do we do with the extension parameter here?

        :returns: HTML of a script tag to insert into a page.
        """
        urls = [chunk['url'] for chunk in self.sorted_chunks()]
        tags = self.frontend_message_tag() +\
            ['<script>{kolibri_name}.registerKolibriModuleAsync("{bundle}", ["{urls}"], {events}, {once});</script>'.format(
                kolibri_name=django_settings.KOLIBRI_CORE_JS_NAME,
                bundle=self.unique_slug,
                urls='","'.join(urls),
                events=json.dumps(self.events),
                once=json.dumps(self.once),
            )]
        return mark_safe('\n'.join(tags))
项目:infiblog    作者:RajuKoushik    | 项目源码 | 文件源码
def is_immutable_file(self, path, url):
        """
        Determine whether given URL represents an immutable file (i.e. a
        file with a hash of its contents as part of its name) which can
        therefore be cached forever
        """
        if not url.startswith(self.static_prefix):
            return False
        name = url[len(self.static_prefix):]
        name_without_hash = self.get_name_without_hash(name)
        if name == name_without_hash:
            return False
        static_url = self.get_static_url(name_without_hash)
        # If the static URL function maps the name without hash
        # back to the original URL, then we know we've got a
        # versioned filename
        if static_url and static_url.endswith(url):
            return True
        return False
项目:Instagram    作者:Fastcampus-WPS-5th    | 项目源码 | 文件源码
def url(self):
        try:
            return super().url
        except ValueError:
            from django.contrib.staticfiles.storage import staticfiles_storage
            return staticfiles_storage.url(self.field.static_image_path)
项目:django-prosemirror    作者:zakdoek    | 项目源码 | 文件源码
def _media(self):
        """
        Include media
        """
        js = (
            staticfiles_storage.url("prosemirror/widget.min.js"),
        )

        css = {
            "all": (
                staticfiles_storage.url(
                    "prosemirror/widget.min.css"),
            )
        }
        return forms.Media(css=css, js=js)
项目:tts-bug-bounty-dashboard    作者:18F    | 项目源码 | 文件源码
def environment(**options):
    env = Environment(**options)
    env.globals.update({
        'static': staticfiles_storage.url,
        'url': reverse,
    })
    return env
项目:CodingDojo    作者:ComputerSocietyUNB    | 项目源码 | 文件源码
def static(path):
    return staticfiles_storage.url(path)
项目:CodingDojo    作者:ComputerSocietyUNB    | 项目源码 | 文件源码
def url(self, context):
        path = self.path.resolve(context)
        return static(path)
项目:deb-python-coffin    作者:openstack    | 项目源码 | 文件源码
def get_statc_url(cls, path):
        return super(StaticExtension, cls).get_statc_url(
            staticfiles_storage.url(path))
项目:site    作者:alphageek-xyz    | 项目源码 | 文件源码
def fp_lastmod(request, url):
    return datetime.datetime.fromtimestamp(
        Path(loader.get_template(
            FlatPage.objects.get(url=url).template_name
            or "flatpages/default.html"
        ).template.origin.name).stat().st_mtime
    )
项目:django-echarts    作者:kinegratii    | 项目源码 | 文件源码
def environment(**options):
    """
    Create a environment object for settings.TEMPLATE.Jinja2.ENGINE
    :param options:
    :return:
    """
    env = BaseEnvironment(pyecharts_config=PyEchartsConfig(jshost=settings.STATIC_URL), **options)
    env.globals.update({
        'static': staticfiles_storage.url,
        'url': reverse,
    })
    return env
项目:mercure    作者:synhack    | 项目源码 | 文件源码
def environment(**options):
    """Get jinja2 environment.

    :param options: Options
    :return env: return environment instance
    """
    env = Environment(**options)
    env.globals.update({
        'static': staticfiles_storage.url,
        'url': reverse,
        'LANGUAGES': settings.LANGUAGES,
        'translation': translation,
    })

    # add django filters
    env.filters['slugify'] = slugify

    # use django-bootstrap-form on jinja
    from bootstrapform.templatetags import bootstrap
    env.filters['bootstrap'] = bootstrap.bootstrap
    env.filters['bootstrap_horizontal'] = bootstrap.bootstrap_horizontal
    env.filters['bootstrap_inline'] = bootstrap.bootstrap_inline

    # add custom filters
    env.filters['fupper'] = fupper

    env.install_gettext_translations(translation)
    return env
项目:intake    作者:codeforamerica    | 项目源码 | 文件源码
def loudfail_static(*args, **kwargs):
    result = staticfiles_storage.url(*args, **kwargs)
    if not result:
        raise ObjectDoesNotExist(
            "Cannot find static file with: {} {}".format(args, kwargs))
    else:
        return result
项目:intake    作者:codeforamerica    | 项目源码 | 文件源码
def externalize_url(url):
    return urljoin(settings.DEFAULT_HOST, url)
项目:intake    作者:codeforamerica    | 项目源码 | 文件源码
def build_link(self, lookup):
        url = self.links[lookup]
        return '<a href="{}">{}</a>'.format(
            url, escape(lookup))
项目:tumanov_castleoaks    作者:Roamdev    | 项目源码 | 文件源码
def get_urls(self):
        urls = super().get_urls()

        info = self.model._meta.app_label, self.model._meta.model_name
        submit_urls = [
            url(
                r'^(\d+)/share/$',
                self.admin_site.admin_view(self.submit_view),
                name='%s_%s_share' % info
            ),
        ]
        return submit_urls + urls
项目:tumanov_castleoaks    作者:Roamdev    | 项目源码 | 文件源码
def submit_view(self, request, object_id):
        try:
            obj = self.model._default_manager.get(pk=object_id)
        except self.model.DoesNotExist:
            raise Http404

        form = self.get_autopost_form(request, obj)
        if form.is_valid():
            obj_ct = ContentType.objects.get_for_model(obj)
            text = form.cleaned_data.get('text')
            networks = form.cleaned_data.get('networks')
            for network in networks:
                try:
                    post = FeedPost.objects.get(
                        network=network,
                        content_type=obj_ct,
                        object_id=obj.pk,
                    )
                except FeedPost.DoesNotExist:
                    FeedPost.objects.create(
                        network=network,
                        url=request.build_absolute_uri(self.get_autopost_url(obj)),
                        text=text,

                        content_type=obj_ct,
                        object_id=obj.pk,
                    )
                else:
                    if post.scheduled:
                        # ????????? ??????
                        post.url = request.build_absolute_uri(self.get_autopost_url(obj))
                        post.text = text
                        post.save()

            return JsonResponse({})
        else:
            return JsonResponse({
                'errors': form.errors
            }, status=400)
项目:tumanov_castleoaks    作者:Roamdev    | 项目源码 | 文件源码
def __init__(self, *args, sprite='', size=(), background='#FFFFFF', **kwargs):
        kwargs.setdefault('max_length', 100)
        super().__init__(*args, **kwargs)
        self.sprite = sprite
        self.sprite_url = staticfiles_storage.url(self.sprite)
        self.background = background
        self.size = size
项目:tumanov_castleoaks    作者:Roamdev    | 项目源码 | 文件源码
def render_css(self, package, path, template_name=None):
        template_name = package.template_name or template_name or "pipeline/css_default.html"
        modified = staticfiles_storage.modified_time(path).timestamp()
        context = package.extra_context
        context.update({
            'type': guess_type(path, 'text/css'),
            'url': mark_safe(staticfiles_storage.url(path)),
            'modified': int(modified),
        })
        return loader.render_to_string(template_name, context)
项目:tumanov_castleoaks    作者:Roamdev    | 项目源码 | 文件源码
def render_js(self, package, path):
        template_name = package.template_name or "pipeline/js_default.html"
        modified = staticfiles_storage.modified_time(path).timestamp()
        context = package.extra_context
        context.update({
            'type': guess_type(path, 'text/javascript'),
            'url': mark_safe(staticfiles_storage.url(path)),
            'modified': int(modified),
        })
        return loader.render_to_string(template_name, context)
项目:open-ledger    作者:creativecommons    | 项目源码 | 文件源码
def environment(**options):
    env = Environment(**options)
    env.globals.update({
        'static': staticfiles_storage.url,
        'url': url_tag,
        'url_for': url_tag,
        'url_with_form': url_with_form,
    })
    return env
项目:open-ledger    作者:creativecommons    | 项目源码 | 文件源码
def url_with_form(view, form, args, kwargs):
    """Expects a view name, a form, and optional arguments. The form's data will be
    serialized, with any overrides from kwargs applied. Args are passed through to `reverse`"""
    url = reverse(view, args=args)
    qs = form.data.urlencode()
    parsed = parse_qs(qs)
    if kwargs:
        parsed.update(kwargs)
    url = url + '?' + urlencode(parsed, doseq=True)

    return url
项目:open-ledger    作者:creativecommons    | 项目源码 | 文件源码
def url_tag(view, *args, **kwargs):
    url = reverse(view, args=args)
    if kwargs:
        url += '?' + urlencode(kwargs)
    return url
项目:kolibri    作者:learningequality    | 项目源码 | 文件源码
def bundle(self):
        """
        :returns: a generator yielding dict objects with properties of the built
          asset, most notably its URL.
        """
        for f in self._stats_file_content["files"]:
            filename = f['name']
            if any(list(regex.match(filename) for regex in settings.IGNORE_PATTERNS)):
                continue
            relpath = '{0}/{1}'.format(self.unique_slug, filename)
            if django_settings.DEBUG:
                f['url'] = f['publicPath']
            else:
                f['url'] = staticfiles_storage.url(relpath)
            yield f
项目:kolibri    作者:learningequality    | 项目源码 | 文件源码
def js_and_css_tags(self):
        js_tag = '<script type="text/javascript" src="{url}"></script>'
        css_tag = '<link type="text/css" href="{url}" rel="stylesheet"/>'
        # Sorted to load css before js
        for chunk in self.sorted_chunks():
            if chunk['name'].endswith('.js'):
                yield js_tag.format(url=chunk['url'])
            elif chunk['name'].endswith('.css'):
                yield css_tag.format(url=chunk['url'])
项目:django-applepodcast    作者:richardcornish    | 项目源码 | 文件源码
def get_image_url(self):
        return self.image.url if self.image else staticfiles_storage.url(settings.PODCAST_NO_ARTWORK)
项目:django-applepodcast    作者:richardcornish    | 项目源码 | 文件源码
def get_image_url(self):
        return self.image.url if self.image else self.show.get_image_url()
项目:django-applepodcast    作者:richardcornish    | 项目源码 | 文件源码
def get_poster_url(self):
        return self.poster.url if self.poster else self.episode.get_image_url()
项目:DjangoBlog    作者:0daybug    | 项目源码 | 文件源码
def static(path):
    return staticfiles_storage.url(path)
项目:DjangoBlog    作者:0daybug    | 项目源码 | 文件源码
def url(self, context):
        path = self.path.resolve(context)
        return static(path)
项目:ecs    作者:ecs-org    | 项目源码 | 文件源码
def logo(request):
    s = AdvancedSettings.objects.get()
    if not s.logo:
        return redirect(staticfiles_storage.url('images/fallback_logo.png'))
    return HttpResponse(s.logo, content_type=s.logo_mimetype)
项目:ecs    作者:ecs-org    | 项目源码 | 文件源码
def login(request, *args, **kwargs):
    if request.is_ajax():
        return HttpResponse('<script type="text/javascript">window.location.href="%s";</script>' % reverse('ecs.users.views.login'))

    ua_str = request.META.get('HTTP_USER_AGENT')
    if ua_str:
        request.ua = UA(ua_str)
        if request.ua.is_unsupported:
            return redirect(staticfiles_storage.url('help/html5.html'))

    kwargs.setdefault('template_name', 'users/login.html')
    kwargs['authentication_form'] = EmailLoginForm
    response = auth_views.login(request, *args, **kwargs)
    if request.user.is_authenticated():
        LoginHistory.objects.create(type='login', user=request.user,
            ip=request.META['REMOTE_ADDR'])

        profile = request.user.profile
        old_session_key = profile.session_key
        profile.session_key = request.session.session_key
        profile.save()

        if not settings.DEBUG:
            Session.objects.filter(session_key=old_session_key).update(
                expire_date=timezone.now())

    return response
项目:mhacks-admin    作者:mhacks    | 项目源码 | 文件源码
def environment(**options):
    """
    Hack to inject into Jinja templates so that they are actually usable
    Using Jinja, though, gives us great power and great performance!
    """
    env = Environment(**options)
    env.globals.update({
        'static': staticfiles_storage.url,
        'url_for': reverse,
    })
    from django.utils.text import slugify
    env.filters['slugify'] = slugify
    env.filters['belongs_to'] = user_belongs_to_group
    return env
项目:mhacks-admin    作者:mhacks    | 项目源码 | 文件源码
def validate_url(data, query):
    """
    Checks if the given url contains the specified query. Used for custom url validation in the ModelForms
    :param data: full url
    :param query: string to search within the url
    :return:
    """
    if data and query not in data:
        raise forms.ValidationError('Please enter a valid {} url'.format(query))
项目:wanblog    作者:wanzifa    | 项目源码 | 文件源码
def static(path):
    return staticfiles_storage.url(path)
项目:wanblog    作者:wanzifa    | 项目源码 | 文件源码
def url(self, context):
        path = self.path.resolve(context)
        return static(path)
项目:tabmaster    作者:NicolasMinghetti    | 项目源码 | 文件源码
def static(path):
    return staticfiles_storage.url(path)
项目:tabmaster    作者:NicolasMinghetti    | 项目源码 | 文件源码
def url(self, context):
        path = self.path.resolve(context)
        return static(path)
项目:trydjango18    作者:lucifer-yqh    | 项目源码 | 文件源码
def static(path):
    return staticfiles_storage.url(path)
项目:trydjango18    作者:lucifer-yqh    | 项目源码 | 文件源码
def url(self, context):
        path = self.path.resolve(context)
        return static(path)
项目:trydjango18    作者:wei0104    | 项目源码 | 文件源码
def static(path):
    return staticfiles_storage.url(path)
项目:trydjango18    作者:wei0104    | 项目源码 | 文件源码
def url(self, context):
        path = self.path.resolve(context)
        return static(path)
项目:lifesoundtrack    作者:MTG    | 项目源码 | 文件源码
def url(self, context):
        path = self.path.resolve(context)
        return self.handle_simple(path)
项目:lifesoundtrack    作者:MTG    | 项目源码 | 文件源码
def render(self, context):
        url = self.url(context)
        if self.varname is None:
            return url
        context[self.varname] = url
        return ''
项目:lifesoundtrack    作者:MTG    | 项目源码 | 文件源码
def handle_simple(cls, path):
        if apps.is_installed('django.contrib.staticfiles'):
            from django.contrib.staticfiles.storage import staticfiles_storage
            return staticfiles_storage.url(path)
        else:
            return urljoin(PrefixNode.handle_simple("STATIC_URL"), path)
项目:infiblog    作者:RajuKoushik    | 项目源码 | 文件源码
def find_file(self, url):
        if self.use_finders and url.startswith(self.static_prefix):
            path = finders.find(url[len(self.static_prefix):])
            if path:
                try:
                    return self.get_static_file(path, url)
                except IsDirectoryError:
                    return None
        return super(DjangoWhiteNoise, self).find_file(url)
项目:infiblog    作者:RajuKoushik    | 项目源码 | 文件源码
def get_static_url(self, name):
        try:
            return decode_if_byte_string(staticfiles_storage.url(name))
        except ValueError:
            return None
项目:DSAP    作者:CIRALabs    | 项目源码 | 文件源码
def javascript(filename, type='text/javascript'):
    """A simple shortcut to render a ``script`` tag to a static javascript file"""

    if '?' in filename and len(filename.split('?')) is 2:
        filename, params = filename.split('?')
        return mark_safe('<script type="{}" src="{}?{}"></script>'
                    .format(type, staticfiles_storage.url(filename), params))
    else:
        return mark_safe('<script type="{}" src="{}"></script>'
                    .format(type, staticfiles_storage.url(filename)))