Aguarde...

1 de janeiro de 2021

Os 102 principais pacotes Django mais baixados em 2020

Os 102 principais pacotes Django mais baixados em 2020

2020 está quase acabando e é um bom momento para analisar quais foram os pacotes Django mais solicitados em 2020.

Existem estatísticas de download do repositório de pacotes PyPI bastante detalhadas disponíveis no google cloud . Vamos explorar o resultado de uma consulta simples que coleta o número total de downloads de qualquer pacote com um nome contendo django.

SELECT file.project, COUNT (*) as total_downloads 
FROM `the-psf.pypi.file_downloads`
ONDE DATE (timestamp)
BETWEEN DATE_SUB (CURRENT_DATE (), INTERVAL 360 DAY)
E CURRENT_DATE ()
E file.project como '% django% '
GROUP BY arquivo.projeto
ORDER BY total_downloads DESC
LIMIT 100

A contagem de downloads supera alguns pacotes que estão em uso na maioria dos projetos ativos e não fornece a contagem real de usuários de um projeto. Mas acho que todo o conjunto de dados fornece um bom resumo do que foi usado em 2020. Se você conhece uma boa biblioteca que não estava na lista, anote nos comentários. Eu ficaria feliz em atualizar o artigo com ele!

0. Django

Em 2020, o próprio Django foi baixado mais de 65,5 milhões de vezes! Um incrivelmente grande impulso se você comparar com seus 41 milhões de downloads em 2019. Isso significa que o Django ganhou mais de 50% de popularidade ou que os pipelines de CI / CD se tornaram mais difundidos na prática de desenvolvimento?

1. DESCANSE

Metade das instalações do Django acontecem em associação com o REST Framework. djangorestframeworkpacotes foram baixados mais de 35 milhões de vezes. Surpreendentemente, o django-rest-frameworkpacote antigo e incorreto foi solicitado 5 milhões de vezes.

O REST Framework forma seu próprio conjunto da constelação de pacotes complementares, que também está entre os primeiros de todos os downloads.

- 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- csv 1 819 678 - django-tastypie 1 305 827 - djangorestframework-stubs 973 349 - djangorestframework-filters 902 035
- djangorestframework -filtros xml 891 171

ATUALIZAÇÃO:djoser – os pacotes de autenticação para o REST Framework tem 750208 downloads, um pouco longe dos 100 principais.

2. Utilitários de desenvolvimento

Os ajudantes do processo de desenvolvimento são uma categoria de pacotes muito popular. A tendência crescente para a tipagem estática empurra o django-stubspacote de inferência de tipo para o TOP 100. Parece que nem todo mundo poderia atualizar o Django para a versão mais recente. Neste caso, o django-compactpacote ajuda a usar novos e modernos recursos do Django em projetos legados

- 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. Extensões ORM e campos de formulário / serializador

Isso é o que mais gostamos no Django: consultas ricas e muito suporte a tipo de banco de dados nativo pronto para uso e com muitos pacotes de terceiros.

Às vezes é até difícil escolher. O que você usará para obter suporte para estrutura de árvore – django-treebeadou django-mppt? Como manter um histórico de mudanças – em uma única tabela com django-reversionou fazer uma separada para cada modelo com 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. Teste

A discussão recente sobre a incorporação pytest-djangono núcleo do Django revelou a falta de vários recursos importantes. Mesmo assim, pytesté o executor de teste alternativo mais popular para projetos Django.

- pytest-django 12 145 477 
- django-nose 3 378 225
- django-cobertura-plugin 1 225 145

5. Formulários

Os formulários são uma parte incrível do Django que reduzem drasticamente a codificação manual de HTML. Mas você não pode melhorar a perfeição. Muitos pacotes permitem ajustar a renderização de formulários em que o Django está em uso ativo em 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. Cache

Django tem integração de back-end do Memcache Cache perfeita pronta para uso, mas o Redis ainda é bastante popular e pode ser habilitado por um dos dois pacotes de terceiros diferentes.

Não depende do que você está usando para o back-end do cache: django-cacheopsfornece cache QuerySet útil e atalhos de invalidação automáticos e granulares orientados a eventos.

- django-redis 9 400 461 
- django-redis-cache 2 083 225
- django-cacheops 1 130 117

7. Configurações

Todos nós desejamos que as configurações padrão do Django sejam mais amigáveis ​​à implantação por padrão, mas parece que apenas uma fração dos projetos Django usam django-environ. Todas as outras pessoas estão satisfeitas os.environ.getou não seguem a metodologia de aplicativo de doze fatores?

- dj-database-url 7 573 407
- django-appconf 6 783 029
- django-atmosphere 5 588 732
- django-constance 1 159 432

ATUALIZAÇÃO: A versão inicial deste post, dj-database-urluso de pacote perdido .

8. Trabalhos em segundo plano

Pode ser a funcionalidade mais importante em muitos projetos Django, mas é difícil estimar o uso real. Versões recentes da Celerybiblioteca funcionam prontamente sem qualquer cola adicional específica do Django. Celery é a fila de tarefas distribuída mais popular no mundo Python. Possui 35 milhões de downloads.

- 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

ATUALIZAÇÃO: Outros celeryconcorrentes, estão longe pela contagem de downloads dramatiq– 342 536 huey -330 942

9. Autenticação e autorização

A integração de serviço externo é o recurso mais solicitado na categoria de autenticação. O líder de permissões em nível de linha django-guardianestá no topo há muitos anos.

- 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. Atalhos e ajudantes

O núcleo do Django contém tudo para um desenvolvimento confortável? Ou ainda faltam alguns atalhos úteis que colocam os pacotes de utilitários no topo da lista de downloads?

- django-ipware 4 102 954 
- django-braces 2 250 861
- django-user-agents 1 468 511
- django-irritante 867 588

11. Ferramentas de front-end

Você está surpreso em ver a categoria de integração de front-end apenas ficando em 11º lugar? Eu também. Parece que a maioria dos projetos usa ferramentas JavaScript nativas e não se preocupam com a integração do Django.

- django-js-asset 3 924 030 
- django-webpack-loader 3 439 016
- django-compressor 2 969 084
- django-pipeline 1 085 094

12. Segurança

Django, por padrão, contém proteção contra ataques ClickJacking e CSRF . Pacotes de terceiros fornecem limitação de taxa genérica e restrições de tentativa de login. django-cspainda mais, restringe a execução de JavaScript na página, reduzindo o risco de vulnerabilidades de injeção de conteúdo, como script entre sites,

- django-axes 2 071 982 
- django-ratelimit 1 341 813
- django-csp 1 339 511

13. Correio

Novamente, a categoria de pacotes que estende a funcionalidade principal do Django com suporte a serviços em nuvem. O serviço Amazon SES único parece tão popular quanto todos os outros serviços de correio transacional juntos.

- django-ses 1 992 158 
- django-anymail 1 858 837

14. Monitoramento

Ferramentas auxiliares para melhorar o monitoramento do Django. Sentimos falta Sentryaqui, pois é difícil dividir seu uso dentro de projetos Django, mas definitivamente com 42 milhões de downloads ao longo do ano, Sentryé o líder em sua própria categoria

- django-health-check 1 933 588 
- django-prometheus 1 742 891
- django-log-request-id 1 041 023

15. Administração

O Django admin tem se tornado cada vez melhor com o passar dos anos. Não são necessários tantos pacotes para melhorá-lo mais. Mesmo assim, estilos com uma aparência e um toque bonitos continuam django-grappellino topo.

- django-grappelli 1 518 684 
- django-admin-rangefilter 1 385 710
- django-admin-sortable2 1 012 336
- django-object-actions 1 015 603

16. Pesquisa

A última categoria – suporte de pesquisa de texto completo. Você já se perguntou qual biblioteca usar em conjunto com ElasticSearch? Eu também .

- django-haystack 1 255 008 
- django-elasticsearch-dsl 934 495

De outros

Esses pacotes que são tão bons que não têm nenhum concorrente em sua categoria no TOP 100 de downloads.

Mantenha estática e arquivos de mídia na nuvem com django-storages, tornar modelos mais limpos com django-tables2django-classy-tagsdjango-sekizai, e organizar os fluxos de trabalho com django-fsm.

django-herokué o único pacote no TOP 100 que ajuda na implantação do Django. Esta tarefa não é tão complexa que nenhum outro pacote é criado?

- 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

Bônus +2

Vários pacotes não mencionam Django em seus nomes. Wagtail tem o dobro de downloads django-cmse definitivamente deve ser incluído no TOP 100

A última versão do Django tem suporte assíncrono integrado. Isso significa que a popularidade do channelspacote diminuiria?

- canais 3 050 679 
- wagtail 1 010 017

São todos os pacotes TOP 100 por contagem de download no universo Django.

Postado em Blog
Escreva um comentário