django-photologue的包装程序,用于处理远程图像和服务器端生成的图像。
项目描述
django-metaimage是Django Web框架下的一个GPL许可应用程序。许多网站处理图像/照片,这些图像通常来自三个来源:用户上传、通过URL从互联网拉取或服务器端生成。对于后两种情况,django-metaimage应该很有用:新的实例可以接受远程图像URL或字符串形式的原始图像数据(例如,通过Matplotlib生成)。
主要的MetaImage模型提供了对强大的django-photologue应用(依赖项)中的ImageModel的有用功能的包装。一些django-metaimage代码最初受到了Pinax的photo应用的启发,但我已经去除了Pinax依赖,因此django-metaimage只要求
Django
django-photologue
django-autoslug
django-taggit
django-uni-form, trunk(可选)
如果您想使用包含的示例模板并希望所有django-metaimage测试通过,可能需要django-uni-form。
总的来说,此应用程序提供从多个来源(上传的、远程图像或服务器端生成的图像)对您的网站上的图像的本地表示的更多灵活性。
用法
主要类MetaImage使您能够存储有关图像的有用元数据,包括标题、说明、关于来源的说明(例如版权、权限)和标签。MetaImage属性包括
标题、别名、说明、来源说明(用于归属文本、版权等)
来源URL(如果有)
隐私
安全级别
标签
现在,为了处理应用程序所制作的两种存储图像的情况:从URL检索远程图像(如果图像移动/消失,您将有一个本地副本),或存储服务器端生成的图像
对于远程图像,只需在新的MetaImage实例中指定source_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.
使用由服务器生成的图像 - 作为字符串对象 - 当保存时,可以使用关键字参数image_data,例如:
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)
有用的MetaImage方法包括:
render()和render_linked(),这些方法输出HTML,以在网页上显示您的图像,并带有指向详细信息页面的超链接。
还提供了基本视图、测试和模板,因此您可以快速将应用程序集成到现有的Django站点。
安装
通过“pip install django-metaimage”或从源安装。您可能还需要安装django-taggit、django-autoslug和photologue。
然后更新您的Django项目的settings.py文件:在INSTALLED_APPS列表中添加“photologue”、“taggit”和“metaimage”(autoslug不需要添加),例如:
INSTALLED_APPS = [ ... "photologue", "taggit", "metaimage", ... ]
然后执行“manage.py syncdb”以创建所需的数据库表。
可选:提供了用于添加、编辑、查看等元图像的模板;它们非常基本,仅作为起点。但如果你想直接使用它们,至少做这两件事
获取并安装django-uni-form > 0.7.0,其中一些模板依赖于它,并更新您的setting.py INSTALLED_APPS以将“uni_form”作为包依赖项列出。
更新您的全局urls.py,例如:
urlpatterns = patterns("", ... (r"^metaimage/", include("metaimage.urls")), ... )
此外,许多django-metaimage模板具有注释掉的templatetags依赖项,因为它们需要Pinax或其他包;您可以根据需要激活它们,但务必相应地更新INSTALLED_APPS。
测试
我已经为应用程序包含了一套单元测试;如果您已将django-metaimage集成到现有的Django站点/项目中,只需执行常规的“manage.py test”即可运行测试,但为了使所有测试通过,需要django-uni-form的当前主干(截至2011年2月)
https://github.com/pydanny/django-uni-form
如果您想在任何特定的Django站点/项目之外运行django-metaimage的测试套件 - 即独立Django应用程序测试 - 我建议安装并使用django-app-test-runner以及我在此处的分支
https://github.com/limist/django-app-test-runner
……它启用使用特定于测试的设置文件。在您的虚拟环境中安装django-app-test-runner(不要在没有它的Python中开发!)之后,您应该能够执行类似以下操作
cd to/where/django-metaimage/code/is app-test-runner ./src/metaimage/ -s src/metaimage/testsettings.py
请注意,为了使测试通过,您需要互联网连接。
错误等。
请使用django-metaimage的github站点记录错误/问题,http://github.com/limist/django-metaimage/issues
项目详情
下载文件
下载适合您平台的项目。如果您不确定选择哪个,请了解有关安装包的更多信息。