30款Django 常用的软件包

Django是一款高级的Python Web框架,可以帮助开发者快速创建web应用。我们这里整理了30款Django开发中常用的软件包,学会使用它们可以节省大量开发时间,提高开发效率。下面一起来看下。

认证和授权

1. Python social auth

一款社交账号认证/注册机制,支持Django、Flask、Webpy等在内的多个开发框架,提供了约50多个服务商的授权认证支持,如Google、Twitter、新浪微博等站点,配置简单。

GitHub 地址:https://github.com/pennersr/django-allauth

文档地址:https://django-allauth.readthedocs.io/en/latest/

点评:增强 Django 内置的 django.contrib.auth 模块,提供登录、注册、邮件验证、找回密码等一切用户验证相关的功能。另外还提供 OAuth 第三方登录功能,例如国内的微博、微信登录,国外的 GitHub、Google、facebook 登录等,几乎囊括了大部分热门的第三方账户登录。配置简单,开箱即用。

pip install python-social-auth

2. Django Guardian

Django默认没有提供对象(Object)级别的权限控制,我们可以通过该扩展来帮助Django实现对象级别的权限控制。

pip install django-guardian

3. Django OAuth Toolkit

可以帮助Django项目实现数据、逻辑的OAuth2功能,可与Django REST框架完美整合起来。

pip install django-oauth-toolkit

4. django-allauth

可用于账号注册、管理和第三方社交账号的认证。

django-allauth 是一个能够解决你的注册和认证需求的、可重用的 Django 应用。无论你需要构建本地注册系统还是社交账户注册系统,django-allauth 都能够帮你做到。

这个应用支持多种认证体系,比如用户名或电子邮件。一旦用户注册成功,它还可以提供从无需认证到电子邮件认证的多种账户验证的策略。同时,它也支持多种社交账户和电子邮件账户。它还支持插拔式注册表单,可让用户在注册时回答一些附加问题。

django-allauth 支持多于 20 种认证提供者,包括 Facebook、Google、微博 和 微信。如果你发现了一个它不支持的社交网站,很有可能通过第三方插件提供该网站的接入支持。这个项目还支持自定义后端,可以支持自定义的认证方式,对每个有定制认证需求的人来说这都很棒。

django-allauth 易于配置,且有完善的文档。该项目通过了很多测试,所以你可以相信它的所有部件都会正常运作。

pip install django-allauth

5. Celery

用来管理异步、分布式的消息作业队列,可用于生产系统来处理百万级别的任务。

django-celery是django web开发中执行异步任务或定时任务的最佳选择。它的应用场景包括:

异步任务: 当用户触发一个动作需要较长时间来执行完成时,可以把它作为任务交给celery异步执行,执行完再返回给用户。这点和你在前端使用ajax实现异步加载有异曲同工之妙。

定时任务。假设有多台服务器,多个任务,定时任务的管理是很困难的,你要在不同电脑上写不同的crontab,而且还不好管理。Celery可以帮助我们快速在不同的机器设定不同任务。

其他可以异步执行的任务。比如发送短信,邮件,推送消息,清理/设置缓存等。这点还是比较有用的。

pip install Celery

6. Django REST 框架

构建REST API的优秀框架,可管理内容协商、序列化、分页等,开发者可以在浏览器中浏览构建的API。

REST API 正在迅速成为现代 Web 应用的标准功能。 API 就是简单的使用 JSON 对话而不是 HTML,当然你可以只用 Django 做到这些。你可以制作自己的视图,设置合适的 Content-Type,然后返回 JSON 而不是渲染后的 HTML 响应。这是在像 Django Rest Framework(下称 DRF)这样的 API 框架发布之前,大多数人所做的。

如果你对 Django 的视图类很熟悉,你会觉得使用 DRF 构建 REST API 与使用它们很相似,不过 DRF 只针对特定 API 使用场景而设计。一般的 API 设置只需要一点代码,所以我们没有提供一份让你兴奋的示例代码,而是强调了一些可以让你生活的更舒适的 DRF 特性:

可自动预览的 API 可以使你的开发和人工测试轻而易举。你可以查看 DRF 的示例代码。你可以查看 API 响应,并且不需要你做任何事就可以支持 POST/PUT/DELETE 类型的操作。

便于集成各种认证方式,如 OAuth, Basic Auth, 或API Tokens。

内建请求速率限制。

当与 django-rest-swagger 组合使用时,API 文档几乎可以自动生成。

广泛的第三方库生态。

pip install djangorestframework

7. Django stored messages

可以很好地集成在Django的消息框架中(django.contrib.messages)并让用户决定会话过程中存储在数据库中的消息。

8. django-cors-headers

一款设置CORS(Cross-Origin Resource Sharing)标头的应用,基于XmlHttpRequest,对管理Django应用中的跨域请求非常有帮助。

pip install django-cors-headers

9. Debug toolbar

可在设置面板显示当前请求/响应的各种调试信息。除了本身提供的操作面板外,还有来自社区的多个第三方面板。

该工具给django web开发提供了强大的调试功能,包括查看执行的sql语句,db查询次数,request,headers,调试概览等。 通过安装插件Pympler,你还可以了解内存使用情况。

pip install django-debug-toolbar

静态资源

10. Django Storages

可使静态资源方便地存储在外部服务上。安装后只需运行“python manage.py collectstatic”命令就可以将全部改动的静态文件复制到选定的后端。可结合库“python-boto”一起使用,将静态文件存储到Amazon S3上。

pip install django-storages

11. Django Pipeline

静态资源管理应用,支持连接和压缩CSS/Javascript文件、支持CSS和Javascript的多种编译器、内嵌JavaScript模板,可充分允许自定义。

pip install django-pipeline

12. Django Compressor

可将页面中链接的以及直接编写的JavaScript和CSS打包到一个单一的缓存文件中,以减少页面对服务器的请求数,加快页面的加载速度。

pip install django_compressor

13. Reversion

为模型提供版本控制功能,稍微配置后,就可以恢复已经删除的模型或回滚到模型历史中的任何一点。最新版本支持Django 1.6。

pip install django-reversion

14. Django extensions

Django框架的扩展功能集合,包括management命令扩展、数据库字段扩展、admin后台扩展等。

pip install django-extensions

15. Django braces

是一系列可复用的行为、视图模型、表格和其他组件的合集。

pip install django-braces

16.django-haystack - 全文检索引擎

全文检索不同于标题的简单匹配,是一件技术难度比较高的活。当文章很长时,你很难找到精确的匹配,同时搜索全文需要消耗大量的计算资源。有了haystack,你可以直接django中直接添加搜索功能,像搜索标题一样搜索全文,而无需关注索引建立、搜索解析等技术问题。haystack支持多种搜索引擎,不仅仅是whoosh,使用solr、elastic search等搜索,也可通过haystack,而且直接切换引擎即可,甚至无需修改搜索代码。

GitHub 地址:https://django-haystack.readthedocs.io/en/master/

文档地址:https://github.com/django-haystack/django-haystack

17.django-ckeditor - 富文本编辑器

django没有提供官方的富文本编辑器,而ckeditor恰好是内容型网站后台管理中不可或缺的控件。ckeditor是一款基于javascript,使用非常广泛的开源网页编辑器。它允许用户直接编写图文,插入列表和表格,并支持文本和HTML格式代码输入。

GitHub 地址:https://github.com/django-ckeditor/django-ckeditor

18.django-imagekit - 自动化处理图像

现代网站开发一般免不了处理一些图片,例如头像、用户上传的图片等内容。django-imagekit 帮你配合 django 的 model 模块自动完成图片的裁剪、压缩、生成缩略图、加水印等一系列图片相关的操作。

GitHub 地址:https://github.com/matthewwithanm/django-imagekit

文档地址:http://django-imagekit.rtfd.org/

19.django-xadmin - 更美观更强大的后台

如果你不喜欢django自带后台admin简陋的样式,你可以使用xadmin。xadmin是基于bootstrap和admin的一个更强大的后台管理系统。应该会给有强迫症的你带来惊喜。

GitHub 地址:https://github.com/sshwsfc/xadmin

文档地址:https://xadmin.readthedocs.io/en/docs-chinese/

20.django-constance - 常量管理

有时我们会在 django 的 settings 中设置一些常量,但是有可能会进行变更。利用这个包,只需简单的配置就可以自动生成 admin 管理后台可以修改管理常量。

Django 的好处就是大而全,不仅内置了 ORM、表单、模板引擎、用户系统等,而且第三方应用的生态也是十分完善,开发中大部分常见的功能都能找到对应的第三方实现。在这里给大家推荐 10 个十分优秀的 Django 第三方库(GitHub 星星数基本都在 1000 以上,而且都在持续维护与更新中)。虽然这些库很适合用于社交网站的开发,但也有很大一部分是通用的,可以用于任何用 Django 开发的项目。使用这些库将大大提高开发效率和生产力。

21.django-model-utils

简介:增强 Django 的 model 模块。内置了一些通用的 model Mixin,例如 TimeStampedModel 为模型提供一个创建时间和修改时间的字段,还有一些有用的 Field,几乎每个 Django 项目都能用得上。

GitHub 地址:https://github.com/jazzband/django-model-utils

文档地址:http://django-model-utils.readthedocs.io/en/latest/

22.django-crispy-forms

简介:大大增强 Django 内置的表单功能,Django 内置的表单生成原生的 HTML 表单代码还可以,但为其设置样式是一个麻烦的事情。django-crispy-forms 帮助你使用一行代码渲染一个 Bootstrap 样式的表单,当然它还支持其它一些热门的 CSS 框架样式的渲染。

GitHub 地址:https://github.com/django-crispy-forms/django-crispy-forms

文档地址:http://django-crispy-forms.rtfd.org/

23.django-mptt

简介:配合 Django 的 ORM 系统,为数据库的记录生成树形结构,并提供便捷的操作树型记录的 API。例如可以使用它实现一个多级的评论系统。总之,只要你的数据结构可能需要使用树来表示,django-mptt 将大大提高你的开发效率。

GitHub 地址:https://github.com/django-mptt/django-mptt

文档地址:https://django-mptt.readthedocs.io/

24.django-contrib-comments

简介:用于提供评论功能,最先集成在 django 的 contrib 内置库里,后来被移出来单独维护。这个评论库提供了基本的评论功能,但是只支持单级评论。好在这个库具有很好的拓展性,基于上边提到的 django-mptt,就可以构建一个支持层级评论的评论库。

GitHub 地址:https://github.com/django/django-contrib-comments

文档地址:https://django-contrib-comments.readthedocs.io/

25.django-brace

简介:django 内置的 class based view 很 awesome,但还有一些通用的类视图没有包含在 django 源码中,这个库补充了更多常用的类视图。类视图是 django 的一个很重要也很优雅的特性,使用类视图可以减少视图函数的代码编写量、提高视图函数的代码复用性等。

GitHub 地址:https://github.com/brack3t/django-braces

文档地址:http://django-braces.readthedocs.io/en/latest/index.html

点评:深入学习类视图可以看Django类视图源码分析。

26.django-notifications-hq

简介:为你的网站提供类似于 GitHub 这样的通知功能。未读通知数、通知列表、标为已读等等。

GitHub 地址:https://github.com/django-notifications/django-notifications

文档地址:https://pypi.python.org/pypi/django-notifications-hq/

27.django-simple-captcha

简介:配合 django 的表单模块,方便地为表单添加一个验证码字段。对验证性要求不高的需求,例如注册表单防止机器人自动注册等使用起来非常方便。

GitHub 地址:https://github.com/mbi/django-simple-captcha

文档地址:http://django-simple-captcha.readthedocs.io/en/latest/

28.django-anymail

简介:配合 django 的 email 模块,只需简单配置,就可以使用 Mailgun、SendGrid 等发送邮件。

GitHub 地址:https://github.com/anymail/django-anymail

文档地址:https://anymail.readthedocs.io/

29.django-activity-stream

简介:社交类网站免不了关注、收藏、点赞、用户动态等功能,这一个 app 全搞定。甚至用它实现一个朋友圈也不是不可能。

GitHub 地址:https://github.com/justquick/django-activity-stream

文档地址:http://django-activity-stream.rtfd.io/en/latest/

30.Datatables

是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能。

官网:https://datatables.net/ 中文网站:http://datatables.club/

————————————————

版权声明:本文为CSDN博主「菲宇」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/bbwangj/article/details/80220873

30款Django 常用的软件包的更多相关文章

  1. 30款jQuery常用网页焦点图banner图片切换 下载

    1.jquery 图片滚动特效制作 slide 图片类似窗帘式图片滚动 查看演示 2.jquery幻灯片插件带滚动条的圆形立体图片旋转滚动 查看演示 3.jQuery图片层叠旋转类似洗牌翻转图片幻灯片 ...

  2. 30款jQuery常用网页焦点图banner图片切换 下载 (转)

    1.jquery 图片滚动特效制作 slide 图片类似窗帘式图片滚动 查看演示 2.jquery幻灯片插件带滚动条的圆形立体图片旋转滚动 查看演示 3.jQuery图片层叠旋转类似洗牌翻转图片幻灯片 ...

  3. 30款jQuery常用网页焦点图banner图片切换

    1.jquery 图片滚动特效制作 slide 图片类似窗帘式图片滚动 查看演示 2.jquery幻灯片插件带滚动条的圆形立体图片旋转滚动 查看演示 3.jQuery图片层叠旋转类似洗牌翻转图片幻灯片 ...

  4. 15款Django开发常用软件包(转)

    原文:http://www.iteye.com/news/28697 Django是一款高级的Python Web框架,可以帮助开发者快速创建web应用.我们这里整理了15款Django开发中常用的软 ...

  5. 30款最好的 Bootstrap 3.0 免费主题和模板

    Twitter Bootstrap 框架已经广为人知,用于加快网站,应用程序或主题的界面开发,并被公认为是迄今对于 Web 开发的最有实质性帮助的工具之一.在此之前的,各种各样的界面库伴随着高昂的维护 ...

  6. 过去几个月出炉的30款最喜欢的 jQuery 插件

    在这篇文章中,我们收集了一些在过去的几个月里最喜欢的 jQuery 插件.为了使您更容易搜索到自己喜欢的 jQuery 插件,我们已经对插件进行了分类: 页面布局插件,图片和视频插件,滑块和画廊,排版 ...

  7. 30个最常用css选择器解析(zz)

    你也许已经掌握了id.class.后台选择器这些基本的css选择器.但这远远不是css的全部.下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题.掌握了它们,才能真正领 ...

  8. 30款css3实现的鼠标经过图片显示描述特效

    今天给大家分享30款css3实现的鼠标经过图片显示描述特效,鼠标经过这些图片的时候以非常炫的方式显示图片的描述.为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现 ...

  9. App运营者必须知道的30款数据分析工具

    如今的移动应用早已不再是某种结构单一.功能简单的工具了.当我们的移动应用变得越来越庞杂,我们便会需要借用分析工具,来跟踪和分析App内的每一个部分.幸运的是,目前市面上有许多数据分析工具可供App开发 ...

随机推荐

  1. java8新特性——stream笔记

    stream对象 Stream IntStream LongStream DoubleStream 创建 常用的三种方式: 使用list对象: list.stream() − 为集合创建串行流. li ...

  2. 这些Zepto中实用的方法集

    前言 时间过得可真快,转眼间2017年已去大半有余,你就说吓不吓人,这一年你成长了多少,是否荒度了很多时光,亦或者天天向上,收获满满.今天主要写一些看Zepto基础模块时,比较实用的部分内部方法,在我 ...

  3. 浅析SIEM、态势感知平台、安全运营中心

    近年来SIEM.态势感知平台.安全运营中心等概念炒的火热,有的人认为这都是安全管理产品,这些产品就是一回事,有人认为还是有所区分.那么到底什么是SIEM.什么是态势感知平台.什么是安全运营中心,他们之 ...

  4. [Python] iupdatable包:日志模块使用介绍

    一.说明 日志模块是对 logging 模块的单例封装 特点: 可同时向控制台和文件输出日志,并可选择关闭其中一种方式的输出: 集成colorlog,实现根据日志等级不同,控制台输出日志颜色不同: 灵 ...

  5. iframe 父框架调用子框架的函数

    1.父框架定义: <iframe name="mainframe" id="mainframe" width="100%" scrol ...

  6. Markdown试用

    目录 今天又是充满希望的一天 一.是什么 二.为什么 三.怎么做 代码 这世界上好人坏人都很多,我不是一个坏人. 我不是个英雄,我只是个拿

  7. Java多线程并发02——线程的生命周期与常用方法,你都掌握了吗

    在上一章,为大家介绍了线程的一些基础知识,线程的创建与终止.本期将为各位带来线程的生命周期与常用方法.关注我的公众号「Java面典」了解更多 Java 相关知识点. 线程生命周期 一个线程不是被创建了 ...

  8. AspNetCore3.1_Secutiry源码解析_3_Authentication_Cookies

    系列文章目录 AspNetCore3.1_Secutiry源码解析_1_目录 AspNetCore3.1_Secutiry源码解析_2_Authentication_核心流程 AspNetCore3. ...

  9. iview mock main.js

    main.js // 实际打包时应该不引入mock /* eslint-disable */ // if (process.env.NODE_ENV !== 'production') require ...

  10. java -输入年龄判断是否符合范围。

    //创建的一个包名. package demo3; //定义一个类. public class Test { //公共静态的主方法. public static void main(String[] ...