用金字塔网络框架构建的图像库

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>
管理员帐户 < d> > div >
登录:admin>
密码:admin
客人帐户 < d> > div >
登录:guest
密码:guest
< div > 注

您可以通过编辑位于同一文件中的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-dev
0

或:

$ sudo aptitude install build-essential libjpeg-dev python-dev
1

定制外观

通过覆盖,您可以轻松自定义Pygall Gallery的外观和感觉 一些mako模板并提供您自己的静态资源(css、图像)。

要覆盖某些默认的pygall模板,必须更新 production.ini 并取消对行的注释:

$ sudo aptitude install build-essential libjpeg-dev python-dev
2

然后创建 自定义模板 目录,并将一些mako模板放入 那里。例如,您可以从 https://github.com/inneos/pygall/tree/master/pygall/templates 并更新它们 根据需要。

如果要包含一些静态资源,还可以激活新的 取消注释行的静态视图:

$ sudo aptitude install build-essential libjpeg-dev python-dev
3

然后创建 custom_static 目录,并在其中放置一些静态文件。 现在,您可以使用 例如:

$ sudo aptitude install build-essential libjpeg-dev python-dev
4

延长Pygall

如果对外观和感觉的定制还不够,你可以更进一步 创建一个扩展pygall的新金字塔应用程序。

因此,您可以使用金字塔Web框架的所有灵活性, 拥有自己的应用程序并在内部使用pygall视图。

有关详细信息,请参阅金字塔Web框架文档 应用程序自定义。

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

推荐PyPI第三方库


热门话题
java为游戏添加声音。需要帮助   java在获取数据时忽略模型类中的forign键映射   java为什么Microsoft JDBC驱动程序忽略failoverPartner主机名   java可以下载mozswing文件   java等价于ObjectOutputStream,不仅保存其状态,还保存整个对象?   Java Android LiveData根据其他LiveData调用房间查询   java如何使用jackson jsonNode实现这一点并获得所需的输出   在web服务器上作为web应用程序运行java应用程序?   groovy中java类的元类属性   返回空指针的java图形对象   标头中包含用户名和密码的java SOAP客户端请求   具有堆栈实现和递归的Hanoi算法塔(Java)   java当我运行这两个类时,我的老鼠不会移动   使用图像进行java相似图像搜索   Java8并行流机制   使用单例对象作为枚举元素的java Scala枚举,是否有可能对它们进行迭代?   java Webview更改高度大小   不可序列化对象和函数的java Spark Scala编程   java my app在eclipse中运行良好,而不是在jar中