django photologue的包装器,用于处理远程图像和服务器端生成的图像。

django-metaimage的Python项目详细描述


django metaimage是django web框架的gpl许可应用程序。 许多网站处理图片/照片,通常来自三个 来源:由用户上传,通过URL从Internet上提取,或 生成的服务器端。对于后两种情况,django元图像 应该有用:一个新实例可以获取远程图像url, 或作为字符串的原始图像数据(例如,可以通过 matplotlib)。

主元图像模型提供了有用功能的包装。 来自强大的django photologue应用程序(a)的around imagemodel 依赖性)。一些django元图像代码最初是受启发的 从Pinax的照片应用程序,但我已经删除了Pinax依赖项,因此 django元图像只需要:

  1. Django
  2. Django摄影
  3. Django Autoslug
  4. django taggit
  5. Django Uni窗体,后备箱(可选)

如果要使用包含的 示例模板,并希望看到所有django元图像的测试通过。

总之,这个应用程序为本地提供了更多的灵活性。 从多个来源表示站点上的图像,无论 从远程图像或服务器端生成的图像上载。

用法

主类metaimage支持存储关于 图片,包括标题、标题、关于来源的注释 (如版权、许可)和标签。元图像属性 包括:

  • 标题、段塞、标题、源注释(用于归属文本、版权等)
  • 源URL(如果有)
  • 隐私
  • 安全级别
  • 标签

现在,来处理两个存储应用程序生成的图像的情况 for:从远程图像的url检索该图像(您将有一个本地 在图像移动/消失时复制),或存储服务器端 生成的图像:

  • 对于远程图像,只需在新的 元映像实例并保存,例如
new_metaimage = MetaImage(
    title='Django logo',
    source_url='http://media.djangoproject.com/img/site/hdr_logo.gif',
    source_note='The logo of the Django project.',
    creator=foo_user)
new_metaimage.save()  # Will download, save source_url locally.
  • 使用服务器端生成的图像-作为字符串对象-可以 保存时发送关键字参数图像数据,例如
new_metaimage = MetaImage(
    title='Chart of f(x)',
    source_note='Chart of f(x) generated by Matplotlib.',
    creator=foo_user)
new_metaimage.save(image_data=a_png_as_str)

有用的元图像方法包括:

  • render()和render_linked(),它会弹出HTML来显示 网页上的图像,带有指向详细信息页的超链接。

还提供了基本视图、测试和模板,因此您可以 快速集成应用程序到现有的Django网站。

安装

通过“pip install django metaimage”或从源代码安装。你可以 还需要为django taggit、django autoslug和 摄影。

然后更新django项目的settings.py文件:add“photologue”, 中的“taggit”和“metaimage”(不需要autoslug) 已安装的应用程序列表,例如

INSTALLED_APPS = [
    ...
    "photologue",
    "taggit",
    "metaimage",
    ...
    ]

然后,执行“manage.py syncdb”创建数据库表 需要。

可选:提供用于添加、编辑、查看等的模板 元图像;它们非常基本,只是作为一个起点。 但如果您想直接使用它们,请至少执行以下两项操作:

  1. 获取并安装django uni form>;0.7.0,其中一些模板 依赖并更新您的设置。py installed_apps to list “uni_form”作为包依赖项。
  2. 更新站点范围的url.py,例如
urlpatterns = patterns("",
    ...
    (r"^metaimage/", include("metaimage.urls")),
    ...
    )

此外,许多django元图像模板都有templatetags 被注释掉的依赖项,因为它们需要pinax或其他 包;您可以根据需要激活它们,但请确保更新 相应地安装了_应用程序。

测试

我已经包含了一组应用程序的单元测试;如果您已经集成了 Django Meta映像到现有的Django站点/项目中,只需执行 通常的“manage.py test”和测试应该运行,但对于所有测试 目前Django Uni表单的主干(截至2011年2月)是 需要:

https://github.com/pydanny/django-uni-form

应该您想在任何 特定django站点/项目-即独立django应用程序测试- 我建议安装和使用django应用程序测试运行程序和我的fork 在:

https://github.com/limist/django-app-test-runner

…允许使用特定于测试的设置文件。在你之后 在您的virtualenv中安装django app test runner(不要在 没有它的Python!)您应该能够执行如下操作:

cd to/where/django-metaimage/code/is
app-test-runner ./src/metaimage/ -s src/metaimage/testsettings.py

请注意,您需要Internet连接才能通过测试。

错误等

请使用django metaimage的github站点记录错误/问题, http://github.com/limist/django-metaimage/issues

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

推荐PyPI第三方库


热门话题
带有抽象方法的JavaGroovy模拟   java黄瓜任务   没有同步或易失性的java内存可见性   java何时使用合适版本的singleton threadsafe实现?   java将包装器类转换为Xtend中的原语   java如何从父帧关闭所有子帧?   java如何将图像上载到SQLite数据库?   java如何更改JTable的空白颜色?   java Android在OpenGLES中通过glBlendFunc混合获得正确的不透明度/颜色   多线程在Java中同步共享静态对象的正确方法是什么?   Java中类似apache commons的谓词。它存在吗?   安卓中文本视图中的java过滤文本   java Room数据库迁移冻结屏幕   jar Java使用xjc生成的类不会生成默认的无参数构造函数   java Android包含自定义组件,导致其隐藏在主视图后面   java Gradle脚本忽略TestNG xml文件   java无法安装maven,系统无法识别“mvn”命令行   如何通过java中的post将信息发送到php页面?   java Android HTTPUrlConnection响应返回垃圾   如何确保我的Java程序不使用Oracle JVM?