{
"info": {
"author": "Tamas Kemenczy",
"author_email": "tamas.kemenczy@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Framework :: Django",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python"
],
"description": "django-staticmedia\r\n==================\r\n\r\n* Bugs_\r\n\r\n.. _Bugs: http://bugs.launchpad.net/django-staticmedia\r\n\r\n.. contents::\r\n\r\nOverview\r\n--------\r\n\r\ndjango-staticmedia provides a lightweight framework for dynamically\r\nobtaining the URLs and paths of your site-level and app-level static\r\nmedia, such as images and css stylesheets. It lets you avoid\r\nhardcoding absolute, site-specific paths to your static media files in\r\nsite-level and/or app-level templates, or in your Python code\r\n(declaring widget assets). It can also be used as an alternative to\r\nusing a settings directive, much like 'ADMIN_MEDIA_PREFIX'.\r\n\r\nFeatures\r\n~~~~~~~~\r\n\r\n* ``staticmedia.url``, ``staticmedia.path`` and\r\n ``staticmedia.resolve`` functions that you can use to dynamically\r\n obtain the URL, path, or both (respectively) of your static media in\r\n your Python code.\r\n\r\n* A ``{% mediaurl %}`` and ``{% mediapath %}`` template tags.\r\n\r\n* A submodule and management commands for generating configuraton\r\n directives for various common web servers.\r\n\r\n* A convenience function for generating urlpatterns that statically\r\n serve your static media from Django (although this is slow and\r\n insecure).\r\n\r\n\r\nSettings\r\n--------\r\n\r\n``STATICMEDIA_MOUNTS``\r\n\r\nDefault: ``[]``\r\n\r\nA sequence of ``(mount_url, mount_path)`` tuples. The term 'mount' in\r\nthis case just means directories on the filesystem, ``mount_path``,\r\nthat are expected to be available at a given url on the site,\r\n``mount_url``. Usually these are served by a webserver, but can be\r\nserved by Django for testing purposes.\r\n\r\n``STATICMEDIA_URL``\r\n\r\nDefault: ``/appmedia``\r\n\r\nThe URL prefix to use for each application media mount.\r\n\r\n\r\nUsing django-staticmedia\r\n------------------------\r\n\r\nBundling media with your application\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nTo bundle static media with your application, create a ``media``\r\ndirectory in the root directory of you Django application::\r\n\r\n myapp/\r\n |---media/\r\n \\---models.py\r\n \\---urls.py\r\n\r\nThis ``media`` directory will then be picked up by django-staticmedia\r\nas a mount point.\r\n\r\nGetting the absolute URL or path for static media\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nStatic media should be specified relative to mount points. Extending\r\nthe above application structure example::\r\n\r\n myapp/\r\n |---media/\r\n | \\---button.png\r\n \\---models.py\r\n \\---urls.py\r\n\r\nFrom Python code::\r\n\r\n >>> import staticmedia\r\n >>> staticmedia.resolve('button.png')\r\n ('/appmedia/myapp/button.png', '/path/to/myapp/media/button.png')\r\n >>> staticmedia.url('button.png')\r\n '/appmedia/myapp/button.png'\r\n >>> staticmedia.path('button.png')\r\n '/path/to/myapp/media/button.png'\r\n\r\nOr from a template::\r\n\r\n {% load staticmedia %}\r\n\r\n {% mediaurl \"button.png\" %}\r\n \r\n {% mediapath \"button.png\" %}\r\n\r\n\r\ndjango-staticmedia first goes through your mounts specified with the\r\n``STATICMEDIA_MOUNTS`` setting, and then through each application\r\nmount (installed applications with a ``media`` directory in the\r\npackage). The URL the first mount point in which a 'button.png' file\r\nexists is used.\r\n\r\nIn the above case, 'button.png' was found in the application media\r\ndirectory, and since the default value of the ``STATICMEDIA_URL`` is\r\n``'/appmedia'``, the expected URL of the static media file is\r\n'/appmedia/myapp/button.png'.\r\n\r\nSuppose you wanted to have a custom 'button.png' for a particular site\r\nto use instead of the one bundled with the application media. You\r\ncould add a mount to ``STATICMEDIA_MOUNTS``::\r\n\r\n STATICMEDIA_MOUNTS = (\r\n ('/sitemedia', '/sites/mysite/sitemedia')\r\n )\r\n\r\nProvided that a '/sites/mysite/sitemedia/button.png' file exists, a\r\ncall to ``staticmedia.resolve`` would now return\r\n``'/sitemedia/button.png'``.\r\n\r\n\r\nAvoiding media filename conflicts\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nA good convention to use is to 'namespace' application media, much\r\nlike application templates::\r\n\r\n myapp/\r\n |---media/\r\n | \\---myapp\r\n | \\---button.png\r\n \\---models.py\r\n \\---urls.py\r\n\r\nRequesting media would look like::\r\n\r\n >>> staticmedia.resolve('myapp/button.png')\r\n ('/appmedia/myapp/myapp/button.png', \r\n'/path/to/myapp/media/myapp/button.png')\r\n\r\n # if we have a 'myapp/button.png' file in the '/sitemedia'\r\n # mount in the example above, then:\r\n\r\n >>> staticmedia.resolve('myapp/button.png')\r\n ('/sitemedia/myapp/button.png', '/sites/mysite/sitemedia/myapp/button.png')\r\n\r\n\r\ndjango-staticmedia and web servers\r\n----------------------------------\r\n\r\nNormally you want to delegate the serving of your static media to web\r\nservers. django-staticmedia comes with a submodule to dynamically\r\ngenerate configuration directives for some common web servers::\r\n\r\n >>> from staticmedia import serverconf\r\n\r\n >>> serverconf.nginx()\r\n 'location /appmedia/myapp { alias /path/to/myapp/media; }'\r\n\r\n >>> serverconf.apache()\r\n 'Alias \"/appmedia/myapp\" \"/path/to/myapp/media\"'\r\n\r\n >>> serverconf.lighttpd()\r\n 'alias.url += ( \"/appmedia/myapp\" => \"/path/to/myapp/media\" )\r\n\r\n >>> serverconf.nginx(access_log='off')\r\n 'location /appmedia/myapp { alias /path/to/myapp/media; access_log off; }'\r\n\r\n >>> serverconf.apache(diroptions='Indexes')\r\n 'Alias \"/appmedia/myapp\" \"/path/to/myapp/media\"\r\n Options Indexes'\r\n\r\nYou can also use a management command to print out the configuration\r\ndirectives::\r\n\r\n $ ./manage.py staticmedia nginx-conf\r\n location /appmedia/myapp { alias /path/to/myapp/media; }\r\n\r\n $ ./manage.py staticmedia apache-conf\r\n Alias \"/appmedia/myapp\" \"/path/to/myapp/media\"\r\n \r\n $ ./manage.py staticmedia lighttpd-conf\r\n alias.url += ( \"/appmedia/myapp\" => \"/path/to/myapp/media\" )\r\n\r\n # ./manage.py staticmedia nginx-conf access_log=off\r\n location /appmedia/myapp { alias /path/to/myapp/media; access_log off; }\r\n\r\n # ./manage.py staticmedia apache-conf diroptions=Indexes\r\n Alias \"/appmedia/myapp\" \"/path/to/myapp/media\"\r\n Options Indexes\r\n\r\nYou can also get a generic tab-delineated output::\r\n\r\n $ ./manage.py staticmedia list-mounts\r\n /appmedia/myapp /path/to/myapp/media\r\n\r\nOr from Python::\r\n\r\n >>> import staticmedia\r\n >>> staticmedia.get_mount_points()\r\n (('/appmedia/myapp', '/path/to/myapp/media'),)\r\n\r\n\r\nServing static media with Django\r\n--------------------------------\r\n\r\nA convenience function is provided for automatically generating\r\nurlpatterns that serve your mount points with the\r\n``django.views.static.serve`` method. This isn't recommended outside\r\nof a development environment as its slow and insecure. \r\n\r\nIn your urlconf::\r\n\r\n from django.conf.urls.defaults import *\r\n import staticmedia\r\n\r\n urlpatterns = patterns(\r\n '',\r\n # your urls here\r\n ) + staticmedia.serve()\r\n\r\n``staticmedia.serve`` optionally takes two arguments:\r\n\r\n* ``debug``: If ``True``, only generate url patterns if the ``DEBUG``\r\n setting is ``True``. \r\n* ``show_indexes``: Takes a boolean that gets passed directly to\r\n ``django.views.static.serve`` (see official Django documentation for\r\n details about this)\r\n\r\nChangelog\r\n---------\r\n\r\n0.2.2\r\n~~~~~\r\n\r\n* Moved readme and license file to standard location.\r\n\r\n0.2.1\r\n~~~~~\r\n\r\n* Fix for use of incorrect path separators returned by the ``resolve``\r\n function on Windows.\r\n\r\n0.2\r\n~~~\r\n\r\n* ``resolve`` function returns media url and path (backwards\r\n incompatible), and added ``url`` and ``path`` methods (use ``url``\r\n for previous behavior)\r\n* templatetag library renamed to ``staticmedia`` to be more explicit,\r\n and the ``media`` template tag split into ``mediaurl`` and\r\n ``mediapath`` template tags (backwards incompatible).\r\n* added ``StaticMediaNotFound`` exception, which can be suppressed the\r\n template tags by adding 'fail_silently' at the end of the tags\r\n\r\n0.1.4\r\n~~~~~\r\n\r\n* Fixed ``Directory`` directive generated by\r\n ``staticmedia.serverconf.apache``.\r\n\r\n0.1.3\r\n~~~~~\r\n\r\n* Renamed ``staticmedia.conf`` to ``staticmedia.serverconf`` \r\n* Added support for generating lighttpd ``alias`` directives\r\n* Added support for passing nginx directives for the generated\r\n ``location`` directive\r\n\r\n0.1.2\r\n~~~~~\r\n\r\n* Fixed template tag to allow resolving of context variables.\r\n* Fixed url pattern generation in ``staticmedia.serve``.\r\n* Added ``show_indexes`` argument to ``staticmedia.serve``.\r\n\r\n0.1.1\r\n~~~~~\r\n\r\n* Fixed packaging.\r\n\r\n0.1\r\n~~~\r\n\r\n* Initial release.",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://pypi.python.org/pypi/django-staticmedia",
"keywords": "django utilities templatetag static media",
"license": "BSD",
"maintainer": "",
"maintainer_email": "",
"name": "django-staticmedia",
"package_url": "https://pypi.org/project/django-staticmedia/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/django-staticmedia/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://pypi.python.org/pypi/django-staticmedia"
},
"release_url": "https://pypi.org/project/django-staticmedia/0.2.2/",
"requires_dist": null,
"requires_python": null,
"summary": "Dynamically get URLs for your site-level and app-level static media.",
"version": "0.2.2"
},
"last_serial": 790763,
"releases": {
"0.1": [
{
"comment_text": "",
"digests": {
"md5": "8e1ad3a676b7ece0a273e74335b1c7ed",
"sha256": "dcd182e7c5c018a788ad160dac0a5bf00b5dfc775b8c58b61267d51e77196483"
},
"downloads": -1,
"filename": "django-staticmedia-0.1.tar.gz",
"has_sig": false,
"md5_digest": "8e1ad3a676b7ece0a273e74335b1c7ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10089,
"upload_time": "2009-01-30T00:29:28",
"url": "https://files.pythonhosted.org/packages/6a/46/7b616c51c1ccca9545e62a1bc2c4daa950c7f72655d0dedfe2bb20f50ddd/django-staticmedia-0.1.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "d0cae6b53f57974068306d1cd4d7d0ce",
"sha256": "5c3e10a2450bd1c488284029a6b9658d4f2d8111fbdeefd378c4c9f081083e5f"
},
"downloads": -1,
"filename": "django-staticmedia-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "d0cae6b53f57974068306d1cd4d7d0ce",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6749,
"upload_time": "2009-01-30T16:35:03",
"url": "https://files.pythonhosted.org/packages/ae/b1/701cf048f979e1a90dcf18b9e43f772d7c2d5424d0625e71495b2d353c76/django-staticmedia-0.1.1.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "6e9df1a9948770db9e9233fa50e881fb",
"sha256": "000d6fef60d53e0572fd7fb04991e2bd34a3d902d317c02c77165ee0906acf0e"
},
"downloads": -1,
"filename": "django-staticmedia-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "6e9df1a9948770db9e9233fa50e881fb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4103,
"upload_time": "2009-02-04T03:41:49",
"url": "https://files.pythonhosted.org/packages/91/1d/e7d3922a02c89e51ecaf004cef7c33b8d19c822d65580994b29ac8683339/django-staticmedia-0.1.2.tar.gz"
}
],
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "2e9aede80acd8589641bdb47b22796b0",
"sha256": "7e9f641f8e32d7eaf351a41eb47dd36da5e84dd46596bb37798a02702887e012"
},
"downloads": -1,
"filename": "django-staticmedia-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "2e9aede80acd8589641bdb47b22796b0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4190,
"upload_time": "2009-02-04T16:43:44",
"url": "https://files.pythonhosted.org/packages/2c/10/fd45c8b0f7e8c7c845751620520a079f545204665a980e8df5b426b569ad/django-staticmedia-0.1.3.tar.gz"
}
],
"0.1.4": [
{
"comment_text": "",
"digests": {
"md5": "68f4977549386a4a598f5733e37f1fd8",
"sha256": "af72ae8c9f69094c6e6c0d68b1d13066ee75227046fd09be791a1975ea0e7215"
},
"downloads": -1,
"filename": "django-staticmedia-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "68f4977549386a4a598f5733e37f1fd8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4195,
"upload_time": "2009-02-06T23:25:57",
"url": "https://files.pythonhosted.org/packages/e4/9b/81a678f3105803b477ca6937dca98f0eb79d20452357980cb3f12538498c/django-staticmedia-0.1.4.tar.gz"
}
],
"0.2": [
{
"comment_text": "",
"digests": {
"md5": "a55f2d80a800fb72724605467934fabf",
"sha256": "5cefe70efddef3ba0969b3cb12dd30cb8c816c400bf610fb204a8a4626a558b4"
},
"downloads": -1,
"filename": "django-staticmedia-0.2.tar.gz",
"has_sig": false,
"md5_digest": "a55f2d80a800fb72724605467934fabf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4582,
"upload_time": "2009-03-18T22:03:14",
"url": "https://files.pythonhosted.org/packages/7d/b4/eb3907d3e42d4d041e8dab7d4ee9ed7b92af2c501c44da6e58ec5068d99f/django-staticmedia-0.2.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "6a355e8da0cf01d2c975628370ba02c1",
"sha256": "cc78693d0755e2f1c49702eae6fbf27e22222148f733975b618062bf1b16a42c"
},
"downloads": -1,
"filename": "django-staticmedia-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "6a355e8da0cf01d2c975628370ba02c1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4550,
"upload_time": "2009-10-22T17:49:43",
"url": "https://files.pythonhosted.org/packages/d4/10/784900ee275481ff7847502f8516f140ef893dbe01858809ec6e003dd123/django-staticmedia-0.2.1.tar.gz"
}
],
"0.2.2": [
{
"comment_text": "",
"digests": {
"md5": "8c713a01f2db3c54c206996b245ad4fe",
"sha256": "716bc6f89fb65eb01e627d09567004b6058505777f31d96d8f4132ad0b0025d1"
},
"downloads": -1,
"filename": "django-staticmedia-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "8c713a01f2db3c54c206996b245ad4fe",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7987,
"upload_time": "2010-07-03T18:53:32",
"url": "https://files.pythonhosted.org/packages/de/e9/bdecfe6ae64c7664fb66cbd29fce3805c25c8ba22517f2e1439d8b7a7305/django-staticmedia-0.2.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "8c713a01f2db3c54c206996b245ad4fe",
"sha256": "716bc6f89fb65eb01e627d09567004b6058505777f31d96d8f4132ad0b0025d1"
},
"downloads": -1,
"filename": "django-staticmedia-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "8c713a01f2db3c54c206996b245ad4fe",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7987,
"upload_time": "2010-07-03T18:53:32",
"url": "https://files.pythonhosted.org/packages/de/e9/bdecfe6ae64c7664fb66cbd29fce3805c25c8ba22517f2e1439d8b7a7305/django-staticmedia-0.2.2.tar.gz"
}
]
}