动态获取站点级和应用程序级静态媒体的URL。

django-staticmedia的Python项目详细描述


Django StaticMedia公司
================== < BR> *Br/**布格斯 < BR>
_错误:http://bugs.launchpad.net/django-staticmedia < BR>
内容: < BR>
概述
-- < BR>
django staticmedia为动态
获取站点级和应用程序级静态
媒体,如图像和css样式表。它让你避免
对静态媒体文件的绝对、特定于站点的路径进行硬编码
站点级和/或应用程序级模板,或在python代码中
(声明小部件资产)。它也可以作为
使用settings指令,很像"admin_media_prefix"。 < BR>
功能
~~~~~~~~ < BR>
*``staticmedia.url`````staticmedia.path``和
`` staticmedia.resolve``可以动态使用的函数

您的python代码。 < BR>
*a`{%mediaURL%}`和`{%mediapath%}`模板标记。 < BR>
*用于生成配置的子模块和管理命令
各种常见web服务器的指令。 < BR>
*一个方便的函数,用于生成静态的urlpatterns
从Django为您的静态媒体提供服务(尽管速度很慢,而且
不安全)。 < BR>< BR>
设置
-- < BR>
``静态媒体挂载`` < BR>
默认值:``[]`` < BR>
一个"元组"序列(mount_url,mount_path)。"坐骑"一词
本例只表示文件系统上的目录,`` mount_path`,
在网站上的给定URL中可用,
`` mount_url``。通常这些服务是由web服务器提供的,但是可以是
由Django提供,用于测试目的。 < BR>
``静态媒体URL`` < BR>
默认值:``/appmedia`` < BR>
用于每个应用程序介质装载的url前缀。 < BR>< BR>
使用django staticmedia
-- < BR>
将媒体与应用程序捆绑在一起
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
要将静态媒体与应用程序捆绑在一起,请创建一个``媒体``
django应用程序根目录中的目录: < BR>
我的应用程序/
媒体/
\--models.py型
\--urls.py < BR>
然后django staticmedia将获取此"media"目录
作为安装点。 < BR>
获取静态媒体的绝对url或路径
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
应相对于装入点指定静态介质。延伸
以上应用程序结构示例: < BR>
我的应用程序/
媒体/
按钮.png
\--models.py型
\--urls.py < BR>
来自python代码: < BR>
>>gt;导入StaticMedia
>>gt;staticmedia.resolve('button.png')
('/appmedia/myapp/button.png','/path/to/myapp/media/button.png')
>>gt;staticmedia.url('button.png')
'/appmedia/myapp/button.png'
>>gt;staticmedia.path('button.png')
'/path/to/myapp/media/button.png' < BR>
或模板: < BR>
{%load staticmedia%} < BR>
{%mediaURL"button.png"%}
<;!-----------GT;
{%mediapath"button.png"%} < BR>< BR>
django staticmedia首先遍历您使用
`` staticmedia_mounts``设置,然后通过每个应用程序
安装(在
包装)。url"button.png"文件的第一个装入点
使用exists。 < BR>
在上述情况下,在应用程序媒体中找到"button.png"
目录,并且由于"staticmedia"url的默认值是
```'/appmedia```,静态媒体文件的预期url为
'/appmedia/myapp/button.png'。 < BR>
假设您希望为特定站点提供自定义的"button.png"
使用仪器与应用程序介质捆绑的广告。你
可以向"staticmedia"挂载添加挂载: < BR>
静态媒体安装=(
('/sitemedia','/sites/mysite/sitemedia') < BR>< BR>
如果存在"/sites/mysite/sitemedia/button.png"文件,则
调用"staticmedia.resolve"现在将返回
```/sitemedia/button.png```。 < BR>< BR>
避免媒体文件名冲突
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
一个好的习惯是使用"名称空间"应用程序媒体
类似于应用程序模板: < BR>
我的应用程序/
媒体/
我的应用程序
按钮.png
\--models.py型
\--urls.py < BR>
请求媒体的方式如下: < BR>
>>gt;staticmedia.resolve('myapp/button.png')
('/appmedia/myapp/myapp/button.png',
'/path/to/myapp/media/myapp/button.png') < BR>
如果在"/sitemedia"中有"myapp/button.png"文件
在上面的示例中安装,然后: < BR>
>>gt;staticmedia.resolve('myapp/button.png')
('/sitemedia/myapp/button.png','/sites/mysite/sitemedia/myapp/button.png') < BR>< BR>
django staticmedia和web服务器
< BR>
通常您希望将静态媒体的服务委托给Web
服务器。django staticmedia附带了一个子模块来动态地
为一些常见的web服务器生成配置指令: < BR>
>;>>来自staticmedia import serverconf < BR>
>;>gt;服务器配置.nginx()
'位置/appmedia/myapp{alias/path/to/myapp/media;}' < BR>
>;>gt;服务器配置.apache()
别名/appmedia/myapp""/path/to/myapp/media" < BR>
>;>gt;服务器配置。lighttpd()
alias.url+=("/appmedia/myapp"=>;"/path/to/myapp/media") < BR>
>;>>serverconf.nginx(access_log='off')
"位置/appmedia/myapp{alias/path/to/myapp/media;访问注销;}" < BR>
>;>>serverconf.apache(diroptions='索引')
"别名/appmedia/myapp""/path/to/myapp/media"
<;目录"/path/to/myapp/media">;选项索引<;/目录>;' < BR>
您还可以使用管理命令打印配置
指令: < BR>
$./manage.py staticmedia nginx conf
位置/appmedia/myapp{别名/path/to/myapp/media;} < BR>
$./manage.py staticmedia apache配置
别名"/appmedia/myapp""/path/to/myapp/media" < BR>
$./manage.py staticmedia lighttpd配置
alias.url+=("/appmedia/myapp"=>;"/path/to/myapp/media") < BR>
./manage.py staticmedia nginx conf access_log=关闭
位置/appmedia/myapp{alias/path/to/myapp/media;访问注销;} < BR>
./manage.py staticmedia apache conf diroptions=索引
别名"/appmedia/myapp""/path/to/myapp/media"
<;目录"/path/to/myapp/media">;选项索引<;/目录>; < BR>
您还可以得到一个泛型选项卡描述的输出: < BR>
$./manage.py staticmedia list挂载
/appmedia/myapp/path/到/myapp/media < BR>
或来自python: < BR>
>>gt;导入StaticMedia
>>>staticmedia.get_mount_points()
(('/appmedia/myapp','/path/to/myapp/media'),) < BR>< BR>
使用django提供静态媒体
-- < BR>
为自动生成
urlpatterns为您的挂载点提供
``django.views.static.serve``方法。这在外面是不推荐的
开发环境缓慢且不安全。 < BR>
在urlconf中: < BR>
从django.conf.urls.defaults导入*
导入staticmedia < BR>
urlpatterns=模式(
'',
< BR>)+staticmedia.serve() < BR>
``staticmedia.serve``可选地接受两个参数: < BR>
*``debug`:如果``true`,则仅当``debug```
设置为"true"。
*`` show_indexes``:接受直接传递给
``django.views.static.serve``(有关
详细信息) < BR>
更改日志
--- < BR>
0.2.2
~~~~~~ < BR>
*已将自述文件和许可证文件移动到标准位置。 < BR>
~~~~~~ < BR>
*修复"resolve"返回的不正确路径分隔符的使用``
在Windows上运行。 < BR>
0.2
~~~ < BR>
*`` resolve``函数返回媒体url和路径(向后
不兼容),并添加了"url"和"path"方法(使用"url``
对于以前的行为)
*templateTag库重命名为"staticMedia",更明确地说,
和"media"模板标记拆分为"mediaURL"和
``mediapath``模板标记(向后不兼容)。
*添加了"staticmedianotfound"异常,可以抑制
通过在标记末尾添加"fail_silent"来模板标记 < BR>
~~~~~~ < BR>
*修复了由
`` staticmedia.serverconf.apache``。 < BR>
0.1.3
~~~~~~ < BR>
*将"staticmedia.conf"重命名为"staticmedia.serverconf"``
*添加了对生成lighttpd"alias"指令的支持
*添加了对为生成的
``location``指令 < BR>< >
~~~~~~ < BR>
*修复了允许解析上下文变量的模板标记。
*修复了"staticmedia.serve"中的url模式生成。
*在"staticmedia.serve"中添加了"show_index"参数。 < BR>
~~~~~~ < BR>
*固定包装。 < BR>
0.1
~~~ < BR>
*初次发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在ArrayList中比较数字   java在Kotlin中使异步调用同步   让“Scala编程”junit示例在IntelliJ中工作的java问题   java Servlet侦听器未在ContextListener中设置属性   将Microsoft SQL Server数据库连接到我的Java项目   加载资源时出现java“需要注册工厂”异常   java如何使用POI检查excel中的重复记录?   java如何更改机器生成的代码   java如何确保重写的方法是同步的   用Spring编写Hibernate时的java XML奥秘   java管理mysql数据库中存储的用户权限   java如何运行。来自Javascript的jar方法   java我想在Web应用程序中进行身份验证&对桌面应用程序使用相同的凭据。我该怎么做?