一种提供静态(或混合)内容的非常简单的wsgi方法。
static3-jl的Python项目详细描述
Authors: | Roman Mohr <roman@fenkhuber.at> |
---|---|
Version: | 0.5.1 |
Date: | 2014-06-14 |
Code: | https://github.com/rmohr/static3 |
这个软件是Luke Arnos库static中与python3兼容的fork。
库现在与python3兼容并支持Genshi(的成功者 kid)已添加。在python2上,genshi和/或kid可以用作模板引擎。打开 python3只有genshi可用。
这个库提供了一种简单的方法来包含静态内容 在您的wsgi应用程序中。有一种方便的服务方法 通过pkg_资源找到的文件。还有服务设施 使用“magic”文件处理程序混合(静态和动态)内容。 提供python内置字符串替换、kid和genshi模板支持 而且很容易把你自己的操作工卷起来。注意这个分布 不需要kid或genshi,除非您想使用那种类型的模板。阿尔索 提供一个同名的命令,方便您在需要时使用 通过http共享一点内容,特别的。
Installation and Usage
通过PIP发布的最新版本:
pip install static3
通过Github安装:
git clone https://github.com/rmohr/static3.git cd static3 pip install .
Cling
cling仅提供静态内容。只要给它一个基本目录 要访问的文件。你会得到一个完整的wsgi应用程序,例如 很简单:
from static import Cling from wsgiref.simple_server import make_server my_app = Cling("/my/directory") make_server("localhost", 9999, my_app).serve_forever()
现在您可以通过http://localhost:9999访问给定目录中的所有内容。
Shock
shock的基本功能与cling相同,但使用shock我们可以 也有一些模板的乐趣。休克来了三个模板后端。 弦代换,基德和根希。决定使用哪个后端 通过检查要服务的文件的扩展名。文件扩展名是“stp”, “孩子”和“根希”。所以如果你想通过 在kid后端,将文件命名为“index.html.kid”。举个简短的例子 像这样:
from static import Shock, KidMagic from wsgiref.simple_server import make_server my_app = Shock("/my/directory", magics=[KidMagic(title="Hello World")]) make_server("localhost", 9999, my_app).serve_forever()
以及示例“index.html.kid”:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#" xml:lang="en"> <head> </head> <body> <h1>$title</h1> </body> </html>
genshi的类似模板“index.html.genshi”:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/" xml:lang="en"> <head> </head> <body> <h1>$title</h1> </body> </html>
这个简单的应用程序将把占位符title替换为“hello world” 在每个以'.kid'结尾的文件中。 在这个例子中已经很明显了,尽管不同的模板 发动机可以使用,它们只能以非常静态的方式使用。从来没有 较少的震动非常适合于简单的半静态的东西,比如 公司徽标或公司名称变量的URL。
Unicode Support
在python3中使用模板系统时,可能需要显式地 为提供的站点设置编码。这可以通过 编码休克的属性:
from static import Shock shock = Shock("/var/www/pub") shock.encoding="latin-1"
当使用cling或shock服务于静态内容时 不需要设置编码,因为内容只是流式传输。 如果您有以不同格式编码的模板,则 需要为使用的每个编解码器实例化shock。