n5321 | 2025年2月15日 22:28

Tags: blog building


tutorial_test增加django_debug插件

pip install django-debug-toolbar -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

其他的部分直接按官网的操作install搞定

增加easy-thumbnails

pip install easy-thumbnails -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

大概搞清楚了这个工具的价值:

  1. 对于media中的图片做处理,可以是裁剪、改分辨率,格式等等。

  2. maybe 在cache中也能做一点处理,提高performance!

尝试另外一个插件:django-filer

简单地试了一下,确实很好用的样子!一个在django admin下面的文档管理器

 pip install django-polymorphic  django-mptt  django-filer  -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

目前是django-cms给钱的一个开源工具!

使用起来还是很有价值,也比较的简单! 中间出现的一个bug是chatgpt给错了解释!

依赖包有三个:easy-thumbnails、django-polymorphic、django-mptt

settings里面要改的若干项目:

INSTALLED_APPS

'easy_thumbnails',
'filer',
'mptt',

其他的部位


INTERNAL_IPS = [
  # ...
  "127.0.0.1",
  # ...
]

THUMBNAIL_STORAGE = 'easy_thumbnails.filesystems.FileSystemStorage'

THUMBNAIL_HIGH_RESOLUTION = True

THUMBNAIL_ALIASES = {
  '': {
      'small': {'size': (200, 200), 'crop': True},   # 200x200 裁剪缩略图
      'medium': {'size': (400, 400), 'crop': True}, # 400x400
      'large': {'size': (800, 800), 'crop': False}, # 800x800,不裁剪
  },
}

THUMBNAIL_PROCESSORS = (
  'easy_thumbnails.processors.colorspace',
  'easy_thumbnails.processors.autocrop',
  'filer.thumbnail_processors.scale_and_crop_with_subject_location',
  'easy_thumbnails.processors.filters',
)

in models.py

file = FilerFileField(
  related_name='documents',
  on_delete=models.CASCADE,
  blank=True,
  null=True,
  verbose_name="文件"
)

in admin.py

admin.site.register(Document, DocumentAdmin)
admin.site.unregister(File)
admin.site.register(File, FileAdmin)

重点:作为一个独立的工具,它自己带了若干个tables。也就是说它本质上是可以无model运行的。

它自己这样子带了7个表,7个表对于文件的管理就已经做了很多的控制!

filer_clipboard filer_clipboarditem filer_file filer_folder filer_folderpermission filer_image filer_thumbnailoption

实际的使用则是自己的model去foreignkey这九个tables。所以逻辑上改动的地方其实不多。

开始的Bug是在settings.py之中做了错误的配置:

FILER_FILE_MODELS = { 'file': 'filer.File', # 默认的文件模型 }

help里面几乎没有这个参数的设置。最后想着把这个code 删掉,就一切正常了。用起来算是一个有我需要的功能的工具!说是sha1都嵌入在里面了!所以可以处理duplicate,但是同样的文档可以上传两次!maybe 要在什么地方设置unique=true才行!

问题是这个工具的用户数量可能不是特别多,虽然github里面有1.8k star,从数量上看是很不少,但是在google中可以搜索到的配置应用的article不多!

另外就是它的help做得太潦草了。从help里面难get到足够多准确的idea!

但是确实是用起来很舒服的一个工具。可以算是今天的收货了!

问题是给user 做update效果不好,或者是暂时没搞清楚它的source code!

其他若干个需要尝试的add on

2. django-allauth

  • 推荐理由: 用于用户注册、登录和身份验证。它支持社交媒体登录(如 Facebook、Google 等)和常规电子邮件登录。

  • 功能: 社交认证、用户注册、邮件验证、密码恢复等。

  • 链接: django-allauth

3. django-filer

  • 推荐理由: 一个用于文件和图片管理的 Django 插件。它可以帮助你管理书籍封面和其他上传的资源。

  • 功能: 支持文件、图片、文件夹的管理,集成到 Django Admin 界面。

  • 链接: django-filer

4. django-ckeditor

  • 推荐理由: 提供一个富文本编辑器,可以用于书籍描述、评论等文本内容的编辑。

  • 功能: 支持格式化文本、插入链接、图片、视频等。

  • 链接: django-ckeditor

5. django-comments

  • 推荐理由: 如果你的 bookshare 网站有用户评论功能,django-comments 插件可以帮助你轻松管理评论系统。

  • 功能: 支持评论的管理、审核、用户通知等。

  • 链接: django-comments

6. django-crispy-forms

  • 推荐理由: 使 Django 表单的 HTML 渲染更加简洁、优雅和响应式,减少了大量的模板工作。

  • 功能: 提供更简洁和美观的表单布局。

  • 链接: django-crispy-forms

7. django-tagging

  • 推荐理由: 用于标签系统,用户可以为书籍添加标签,方便分类和搜索。

  • 功能: 提供标签添加、搜索、分类等功能。

  • 链接: django-tagging

8. django-activities

  • 推荐理由: 提供用户行为跟踪、通知功能,可以在书籍分享时进行相关的活动记录。

  • 功能: 用户分享、点赞、评论等活动记录,可以用于构建动态和通知系统。

  • 链接: django-activities

9. django-simple-history

  • 推荐理由: 用于跟踪模型实例的历史变化。如果用户编辑了某本书的描述或其他内容,可以记录历史版本。

  • 功能: 自动记录模型的历史版本,支持查看变更历史。

  • 链接: django-simple-history

10. django-celery

  • 推荐理由: 用于异步任务处理。例如,在后台处理书籍上传、生成书籍封面缩略图等耗时操作时,可以使用 Celery。

  • 功能: 支持异步任务队列处理。

  • 链接: django-celery

11. django-searchable-select

  • 推荐理由: 提供一个可以搜索的下拉选择框,适用于书籍分类、作者等字段,用户可以快速找到相关内容。

  • 功能: 增强选择框的搜索能力,提升用户体验。

  • 链接: django-searchable-select

12. django-storages

  • 推荐理由: 用于处理文件存储,支持使用外部存储服务如 Amazon S3、Google Cloud Storage 或其他云服务。

  • 功能: 支持多种外部存储提供商,方便管理大规模文件。

  • 链接: django-storages

13. django-reversion

  • 推荐理由: 提供数据库版本控制功能,用于恢复编辑过的书籍内容或其他模型实例。

  • 功能: 对模型进行版本控制,可以查看和恢复到历史版本。

  • 链接: django-reversion

14. django-filter

  • 推荐理由: 用于创建过滤器,使得用户可以根据书籍的不同特征(如作者、类别、出版日期等)进行快速过滤。

  • 功能: 支持按条件过滤数据,特别适用于复杂查询。

  • 链接: django-filter

15. django-notifications-hq

  • 推荐理由: 提供通知系统,可以用来发送书籍分享、评论等通知给用户。

  • 功能: 支持多种通知方式(如邮件、推送等)。

  • 链接: django-notifications-hq

16. django-user-accounts

  • 推荐理由: 提供一个完整的用户账户管理系统,可以包括用户的注册、登录、密码恢复等功能。

  • 功能: 用于构建完整的用户管理系统。

  • 链接: django-user-accounts