用金字塔网络框架构建的图像库
PyGall的Python项目详细描述
皮格尔
关于皮格尔
pygall是一个简单的网络照片库,用python编写,构建在 金字塔 网络框架。
Pygall是根据BSD许可证获得许可的。
代码托管在github上:https://github.com/inneos/pygall" rel="nofollow">https://github.com/inneos/pygall
请注意,此图片库是测试版软件,功能不全。 它是为满足我自己的需要而开发的,可能不符合您的愿望。
不过,尽管如此,还是可以在 https://github.com/inneos/pygall/issues 。 更好的是,因为代码托管在github上,所以可以随意分叉和发送 拉取请求。
功能
Pygall目前提供以下功能:
- 通过一个不错的界面浏览和查看照片 凯丹
- 使用jquery file upload通过浏览器批量上传照片。照片是 根据需要自动缩放和旋转。
- 如果使用f-spot作为您的个人照片管理 桌面应用程序,pygall提供一个脚本来自动导入照片 从F-Spot开始,保持您的Pygall Gallery同步。
- 通过一个专用的界面管理您的pygall库,该界面允许您更新 照片元数据,如日期、分级或说明。也可以删除 照片,或通过标签组织它们(很快将用于提供 pygall中的不同视图)。
- 允许模板重写,以便可以轻松自定义用户界面 满足您的需要。
对于即将推出的功能,您可以查看 https://github.com/inneos/pygall/blob/master/todo.txt
安装
在实际安装pygall及其依赖项之前,您应该安装 libjpeg和python开发文件,它们是编译python所必需的 图像库依赖项。 在Debian Linux上,您可以执行以下操作:
$ sudo aptitude install build-essential libjpeg-dev python-dev
您应该有一个工作的setuptools(或distribute)环境。我建议 您可以使用 virtualenv 创建 一个独立的python环境。 在Linux上,您可以执行以下操作:
$ wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py $ python virtualenv.py --no-site-packages venv
这将创建一个名为 venv 的虚拟环境,我们将使用它来安装 侏儒请参见http://www.virtualenv.org" rel="nofollow">http://www.virtualenv.org了解有关virtualenv的更多信息。
所以让我们在新创建的venv中安装pygall:
$ venv/bin/pip install PyGall
Pygall现在已安装。我们需要为您的 皮格尔照片库。最简单的方法是从pygall中复制文件 存储库并根据您的需要进行自定义:
$ wget https://raw.github.com/inneos/PyGall/master/production.ini
首先,您应该编辑production.ini并为 要保护的是authtkt_secret(而不是默认值 防止身份验证会话被盗。
paster将使用这个 production.ini 文件来初始化 应用程序,创建数据库,并为您的应用程序提供服务。
所以您需要设置pygall,为 身份验证(auth.cfg)和创建数据库(pygall.db):
$ venv/bin/python -m pygall.scripts.setup production.ini
最后,您可以为pygall应用程序提供服务:
$ venv/bin/paster serve production.ini
仅此而已,您可以将浏览器指向http://127.0.0.1:6543" rel="nofollow">http://127.0.0.1:6543,然后启动 使用pygall。
默认情况下,将设置以下两个用户帐户:
< DL>您可以通过编辑位于同一文件中的auth.cfg文件来编辑这些用户 目录作为production.ini文件。注意,密码散列是 使用htpasswd实用程序生成。例如,要添加名为 "john",您将使用以下命令生成他的密码散列:
$ htpasswd -n john
然后,您只需在文件auth.cfg中追加一行,复制 上一个htpasswd命令的输出。
如果john应该在group admin中,那么只需在行中添加":admin"。
还要记住更改默认帐户的密码(或删除 完全是这些默认帐户)。
以管理员身份登录,即可导入第一张照片!
使用pygall
默认情况下,匿名时,系统会提示您登录:仅注册 将允许用户查看库。
如果要允许任何匿名用户查看库,可以设置 允许匿名=真 在 production.ini 配置文件中。
登录后,您将被重定向到Pygall库索引页。 如果你是管理组的一员,你将被允许上传新的 照片和编辑,删除现有照片。为了这个目的,你可以去 通过库右上角的"上载"和"管理"链接。
如果您使用f-spot作为个人照片管理桌面应用程序, 您可以选择使用 Pygall将来自F-Spot的照片直接导入到您的库中。 要使用它,只需运行以下命令:
$ venv/bin/python -m pygall.scripts.fspot_sync --fspot-photosdir=/path/to/fspot/photos production.ini
默认情况下,所有带有"pygall"标记的照片都将导入到 画廊。通过"帮助"选项查看所有可能的选项:
$ venv/bin/python -m pygall.scripts.fspot_sync --help
如果您想与其他人共享您的图库,请参阅 创建新用户帐户的前一条注释。
请注意,Pygall已经国际化,并且有两种法语版本 以及英语。要更改当前区域设置,可以设置 \u区域设置 当前URL的查询字符串中的参数。所以url看起来像:
$ sudo aptitude install build-essential libjpeg-dev python-dev0
或:
$ sudo aptitude install build-essential libjpeg-dev python-dev1
定制外观
通过覆盖,您可以轻松自定义Pygall Gallery的外观和感觉 一些mako模板并提供您自己的静态资源(css、图像)。
要覆盖某些默认的pygall模板,必须更新 production.ini 并取消对行的注释:
$ sudo aptitude install build-essential libjpeg-dev python-dev2
然后创建 自定义模板 目录,并将一些mako模板放入 那里。例如,您可以从 https://github.com/inneos/pygall/tree/master/pygall/templates 并更新它们 根据需要。
如果要包含一些静态资源,还可以激活新的 取消注释行的静态视图:
$ sudo aptitude install build-essential libjpeg-dev python-dev3
然后创建 custom_static 目录,并在其中放置一些静态文件。 现在,您可以使用 例如:
$ sudo aptitude install build-essential libjpeg-dev python-dev4
延长Pygall
如果对外观和感觉的定制还不够,你可以更进一步 创建一个扩展pygall的新金字塔应用程序。
因此,您可以使用金字塔Web框架的所有灵活性, 拥有自己的应用程序并在内部使用pygall视图。
有关详细信息,请参阅金字塔Web框架文档 应用程序自定义。