2020年已经结束,是时候分析2020年最需要的Django软件包了。0. Django
2020年,Django本身被下载了6550万次!如果将其与2019年的4100万次下载进行比较,这将是一个惊人的巨大提升。这是否意味着Django获得了+ 50%的流行度,或者CI / CD Pipline在开发实践中变得更加普及了
1. REST
一半的Django安装是与REST框架相关的。djangorestframework软件包的下载量超过3500万次。令人惊讶的是,旧的,错误的ddjango-rest-framework包被请求了500万次。
REST框架形成了它自己的一组配套软件包,它们也排在所有下载的顶部。- djangorestframework 34 227 575
- django-cors-headers 17 980 262
- django-rest-framework 5 012 054
- django-rest-swagger 3 834 364
- djangorestframework-jwt 3 663 231
- djangorestframework-simplejwt 3 285 074
- graphene-django 2 447 735
- django-rest-auth 2 238 789
- djangorestframework-camel-case 1 913 461
- djangorestframework-csv 1 819 678
- django-tastypie 1 305 827
- djangorestframework-stubs 973 349
- djangorestframework-filters 902 035
- djangorestframework-xml 891 171
更新:djoser — REST框架的身份验证程序包具有750208次下载,与前100名相比略有下降。2.开发实用程序
开发过程助手是一种非常流行的软件包类别。静态类型的增长趋势将类型推断django-stubs包推入了前100名。似乎不是每个人都可以将Django升级到最新版本。在这种情况下,django-compactpackage有助于在遗留项目中使用现代的Django新功能- django-extensions 16 406 788
- django-debug-toolbar 10 453 779
- pylint-django 5 776 115
- django-waffle 2 239 980
- django-stubs 2 010 553
- django-silk 1 738 951
- django-compat 1 040 285
3. ORM扩展名和表单/序列化器字段
这就是我们最喜欢Django的地方:丰富的查询和许多本机DB类型支持开箱即用,并带有许多第三方软件包。
有时甚至很难选择。 我们将使用什么来获得树结构支持?django-treebead或django-mppt?如何保持更改历史记录-在具有django-reversion的单个表中,还是为每个具有django-simple-history的模型制作一个单独的表?- django-filter 16 706 350
- django-model-utils 5 855 904
- django-timezone-field 5 135 947
- django-import-export 4 059 689
- django-phonenumber-field 3 788 927
- django-mptt 3 530 540
- django-countries 3 395 824
- django-simple-history 2 929 907
- django-taggit 2 500 534
- django-mysql 2 429 771
- django-polymorphic 2 424 916
- django-localflavor 2 395 908
- django-reversion 2 141 762
- django-picklefield 1 998 291
- django-treebeard 1 960 088
- django-dirtyfields 1 752 146
- django-jsonfield 1 382 853
- django-bitfield 1 375 136
- django-bulk-update 1 272 312
- django-modeltranslation 1 093 761
- django-modelcluster 907 941
4.测试
最近有关将pytest-django嵌入Django核心的讨论表明缺少一些重要功能。即便如此,pytest是Django项目中最受欢迎的替代测试运行器。- pytest-django 12 145 477
- django-nose 3 378 225
- django-coverage-plugin 1 225 145
5.表格
表单是Django的一个很棒的部分,它大大减少了手动HTML编码。但是无法在完美上有所进步。大量的程序包允许在Django中调整表单渲染,并将于2020年投入使用。- django-crispy-forms 5 130 503
- django-widget-tweaks 2 603 999
- django-formtools 2 348 083
- django-ckeditor 1 720 610
- django-autocomplete-light 1 425 283
- django-bootstrap4 1 121 947
- django-bootstrap3 1 119 687
- django-multiselectfield 1 100 977
- django-tinymce 963 423
6.缓存
Django开箱即用,具有完善的Memcache Cache后端集成,但是Redis仍然很流行,可以通过两个不同的第三方软件包之一启用。
它并不取决于用于缓存后端的内容:django-cacheops提供了便捷的QuerySet缓存和自动的,由事件驱动的细化失效快捷方式。- django-redis 9 400 461
- django-redis-cache 2 083 225
- django-cacheops 1 130 117
7.Settings
我们都希望Django默认设置在默认情况下对部署更友好,但是使用django-environ的Django项目似乎只是其中的一小部分。其他人是否对os.environ.get满意?- dj-database-url 7 573 407
- django-appconf 6 783 029
- django-environ 5 588 732
- django-constance 1 159 432
更新:这篇文章的初始版本,错过了dj-database-url软件包的使用。
8.后台工作
在许多Django项目中,它可能是最重要的功能,但是很难估计实际使用情况。Celery库的最新版本可以直接使用,而无需任何其他Django特殊配置。Celery是Python世界中最流行的分布式任务队列。它具有3500万次下载。- django-celery-beat 4 427 330
- django-celery-results 3 308 005
- django-celery 1 492 722
- django-crontab 1 271 395
- django-rq 972 330
更新:其他celery竞争者,离下载数不远dramatiq-342536 huey -330942
9.认证和授权
外部服务集成是身份验证类别中最需要的功能。行级权限领导者django-guardian多年来一直位居榜首。- social-auth-app-django 4 228 917
- django-allauth 3 563 403
- django-oauth-toolkit 2 851 276
- django-otp 1 945 657
- django-guardian 1 797 562
- django-auth-ldap 1 193 910
10.快捷方式和帮手
Django核心是否包含用于开发的所有内容?还是我们仍然缺少一些方便的快捷方式,这些快捷方式将实用程序包带到了下载列表的顶部?- django-ipware 4 102 954
- django-braces 2 250 861
- django-user-agents 1 468 511
- django-annoying 867 588
11.前端工具
对前端集成类别仅排名第11也算正常, 因为大多数项目都使用本机JavaScript工具,而不必理会Django集成。- django-js-asset 3 924 030
- django-webpack-loader 3 439 016
- django-compressor 2 969 084
- django-pipeline 1 085 094
12.安全性
默认情况下,Django包含ClickJacking和CSRF攻击防护。第三方程序包提供通用的速率限制和登录尝试限制。django-csp甚至进一步限制了页面上JavaScript的执行,从而降低了内容注入漏洞(例如跨站点脚本,- django-axes 2 071 982
- django-ratelimit 1 341 813
- django-csp 1 339 511
13.邮件
同样,使用云服务支持扩展Django核心功能的软件包类别。单个Amazon SES服务似乎与所有其他交易邮件服务一起受欢迎。- django-ses 1 992 158
- django-anymail 1 858 837
14.监控
改善Django监控的辅助工具。我们在这里缺少Sentry,因为很难在Django项目中拆分其用途,但是肯定地说,Sentry在一年中有4200万次下载,是其同类产品的领导者- django-health-check 1 933 588
- django-prometheus 1 742 891
- django-log-request-id 1 041 023
15.Administration
多年来,Django后台管理变得越来越好。不需要太多的软件包即可对其进行更多改进。但是,具有漂亮外观的样式仍使django-grappelli居于首位。- django-grappelli 1 518 684
- django-admin-rangefilter 1 385 710
- django-admin-sortable2 1 012 336
- django-object-actions 1 015 603
16.搜索
最后一个类别-全文搜索支持。有没有想过与ElasticSearch一起使用的库是什么?我也是。- django-haystack 1 255 008
- django-elasticsearch-dsl 934 495
其他
那些非常棒的软件包在TOP 100下载中没有任何竞争对手。
使用django-storages将静态文件和媒体文件保存在云中,使用django-tables2,django-classy-tags和django-sekizai渲染更干净的模板,并使用django-fsm组织工作流程。
django-heroku是TOP 100中唯一有助于Django部署的软件包。这样的任务不是那么复杂,以至于没有其他软件包被创建吗?- django-storages 13 080 397
- django-tables2 1 439 101
- django-fsm 1 395 410
- django-classy-tags 1 307 024
- django-heroku 1 193 323
- django-sekizai 1 030 699
几个软件包的名称中没有提及Django。Wagtail的下载量是django-cms的两倍,因此绝对应该包含在TOP 100中
Django的最新版本具有内置的异步支持。 - channels 3 050 679
- wagtail 1 010 017
这就是Django Universe中按下载量计的前100名软件包。那么到这里,给所有Django开发人员说一下,这就是我们在2020年的工作方式。你对明年的发展趋势有一个了解了吗?我们缺少什么package?最近是否有任何新的即将创建的工具? 欢迎在下方留言沟通。Django Model背后原理是什么?屡屡在面试中将你难倒的元编程究竟难在哪里?锁定3日(周三)晚20:00,Python大牛讲师Wayne带你搞懂Django背后的元编程!扫码报名立即参加↓↓