使用十六进制,以二进制存储,使用一半的数据大小。

django-binhash的Python项目详细描述


使用十六进制,以二进制存储,使用一半的数据大小。

安装

只需通过pip

安装
pip install django-binhash

并添加到settings.py

INSTALLED_APPS=[# Django apps'binhash',# Your apps]

兼容性

环境

在python 3.3到3.6以及legacy python(2.7)下测试。

在django 1.8到1.11下测试,但它可能以版本方式运行 年代久远,因为田块结构长期稳定。

数据库

在版本0.1.0中,它只在sqlite上测试,但是如果应该 在Django官方支持的所有数据库中工作良好。

格式

  • MD5
    • MD5Field
  • SHA-1
    • SHA1Field
  • SHA-2
    • SHA224Field
    • SHA256Field
    • SHA384Field
    • SHA512Field

用法

只需导入并设置一些字段:

fromdjango.dbimportmodelsfrombinhashimport(MD5Field,SHA1Field,SHA256Field)classISOFile(models.Model):name=models.CharField('Name',max_length=30)url=models.URLField('URL')md5sum=MD5Field('MD5 Checksum')sha1sum=SHA1Field('SHA-1 Checksum')sha256sum=SHA256Field('SHA-256 Checksum')

然后,像使用charfields一样继续使用它们:

# Create normaly as if the fields were strings:ISOFile.objects.create(name='Ubuntu Server 17.04',md5sum='d02df11b4a7318b7250824f6d0bab9c0',sha1sum='bc5fb639724b5cd90eb739845f246e2c564b0dd8',sha256sum='632e64dde9a7da27fa96bea4d2cf78f0''51065c6becc0d0f728aabfc091396256')# Fetch by string is also supported:ubuntu=ISOFile.objects.get(md5sum='d02df11b4a7318b7250824f6d0bab9c0')# Everything works as expected on the application side:print(ubuntu.sha1sum)# Shows bc5fb639724b5cd90eb739845f246e2c564b0dd8print(type(ubuntu.sha1sum))# Shows <class 'str'>

如果您感到怀疑,请检查数据库:

$ ./manage.py dbshell
sqlite> .header on
sqlite> .mode column
sqlite> select hex(sha1sum) hex_sha1,
   ...>        length(hex(sha1sum)) size_if_this_was_varchar,
   ...>        length(sha1sum) actual_size
   ...> from downloads_isofile;
hex_sha1                                  size_if_this_was_varchar  actual_size
----------------------------------------  ------------------------  -----------
BC5FB639724B5CD90EB739845F246E2C564B0DD8  40                        20

许可证

此库是在3子句bsd许可证下发布的。

tl;dr“只要你相信我”,就可以免费使用。

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

推荐PyPI第三方库


热门话题
从文本文件中读取时显示java符号“ï»”   java在有很多生产商的情况下如何改进Disruptor?   不同线程的java不同堆栈   用Java模拟oraclespool   jsp java访问自定义web中的错误信息。xml错误页   给出奇怪结果的java集成堆栈   java在jsp中显示值列表   java会话。保存更新具有错误ID的实体   在树数据结构中添加节点时的java递归   java在Spring Data Mongodb中使用$$ROOT检索整个文档   java我应该把图像放在罐子里还是不放在罐子里?(Inno设置)   java将bat文件放入jar文件中   Java:如何在节点上执行XPath查询   控制台应用程序如何在Mac上从Java输出重音字符?