Django 框架 - 热门扩展,简短列表

2025-06-10

Django 框架 - 热门扩展,简短列表

你好,程序员们,

本文列出了一些流行的Django模块和应用程序,它们可能有助于 Python 程序员通过重用开源爱好者提供的一些有价值的工作来更快地编写新功能。


谢谢!内容由AppSeed - App Generator提供


该列表是根据我的个人经验以及相关社区的开发人员发布的建议而建立的:Dev.to Pythoners / DjangoReddit DjangoPython频道以及经典的Python 论坛


什么是Django(Web 框架)

初学者简述 - Django 是一个用 Python 编写的开源 Web 应用框架。框架是指一系列简化开发的模块和辅助程序的集合。它们按逻辑分组,允许您通过复用内容来创建 Web 应用程序,而无需从头开始编写所有内容。

有用的 Django 资源:

  • Django - 官方网站和文档
  • Django - 由(流行的)Full-Stack-Python 平台提供的相关内容

入围名单


如果你想通过更新一些开源项目来快速测试这里介绍的任何扩展,这里有一个包含Django 免费应用程序的候选名单

Django Atlantis Dark - 使用 Django 编码的开源管理面板。


Django扩展

这是用于 Django 项目的开源自定义扩展集合,根据 MIT 许可发布。

如何使用

$ pip install django-extensions
Enter fullscreen mode Exit fullscreen mode

在 Django 配置( settings.py )中启用扩展

INSTALLED_APPS = (
    ...
    'django_extensions',
    ...
)
Enter fullscreen mode Exit fullscreen mode

现在我们可以通过manage.py master脚本使用魔法

$ # Generate (and view) a graphviz graph of app models:
$ python manage.py graph_models -a -o myapp_models.png
$
$ # Check templates for rendering errors:
$ python manage.py validate_templates
$
$ # Run the enhanced django shell:
$ python manage.py shell_plus
Enter fullscreen mode Exit fullscreen mode

Django REST框架

Django REST 框架是一个强大而灵活的工具包,用于构建 Web API,具有令人印象深刻的功能集:

  • Web 可浏览 API 为您的开发人员带来了巨大的可用性优势。
  • 身份验证策略包括 OAuth1a 和 OAuth2 的包。
  • 支持 ORM 和非 ORM 数据源的序列化。

Django REST 链接


Django 调试工具栏

Django 调试工具栏是一组可配置的面板,显示有关当前请求/响应的各种调试信息,单击时显示有关面板内容的更多详细信息。

Django 调试工具栏 - 示例屏幕。


Django CORS 标头

一个 Django 应用,它向响应添加了跨域资源共享 (CORS) 标头。这允许从其他来源向你的 Django 应用发出浏览器内请求。

如何使用

$ pip install django-cors-headers
Enter fullscreen mode Exit fullscreen mode

在 Django 配置中添加扩展:


INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
]
Enter fullscreen mode Exit fullscreen mode

您还需要添加一个中间件类来监听响应:


MIDDLEWARE = [  # Or MIDDLEWARE_CLASSES on Django < 1.10
    ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]

Enter fullscreen mode Exit fullscreen mode

Django reCaptcha v3

此集成应用程序为Google reCaptcha v3实现了 ReCaptcha 字段

如何使用

$ pip install django-recaptcha3
Enter fullscreen mode Exit fullscreen mode

然后将 django-recaptcha3 添加到您已安装的应用程序中:

INSTALLED_APPS = (
    ...
    'snowpenguin.django.recaptcha3',
    ...
)
Enter fullscreen mode Exit fullscreen mode

settings.py使用 reCaptcha 私钥和公钥进行更新:

RECAPTCHA_PRIVATE_KEY = 'Super_s3Cret_1234'
RECAPTCHA_PUBLIC_KEY  = 'Public key'
Enter fullscreen mode Exit fullscreen mode

表单中的用法


from snowpenguin.django.recaptcha3.fields import ReCaptchaField

class ExampleForm(forms.Form):
    [...]
    captcha = ReCaptchaField()
    [...]
Enter fullscreen mode Exit fullscreen mode

Drf-Yasg

Django REST 框架的 Swagger/OpenAPI 文档生成器。

如何使用

$ pip install -U drf-yasg
Enter fullscreen mode Exit fullscreen mode

更新settings.py以启用该应用程序:

INSTALLED_APPS = [
    ...
    'drf_yasg',
    ...
]
Enter fullscreen mode Exit fullscreen mode

更新urls.py

...
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi

...

schema_view = get_schema_view(
   openapi.Info(
      title="Snippets API",
      default_version='v1',
      description="Test description",
      terms_of_service="https://www.google.com/policies/terms/",
      contact=openapi.Contact(email="contact@snippets.local"),
      license=openapi.License(name="BSD License"),
   ),
   public=True,
   permission_classes=(permissions.AllowAny,),
)

urlpatterns = [
   url(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
   url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
   url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
   ...
]
Enter fullscreen mode Exit fullscreen mode

这些简单的设置将公开 4 个端点:

  • /swagger.json 上的 API 规范的 JSON 视图
  • /swagger.yaml 上 API 规范的 YAML 视图
  • /swagger/ 上 API 规范的 swagger-ui 视图
  • /redoc/ 上 API 规范的 ReDoc 视图

Django 环境

Django-environ 允许您使用十二要素方法通过环境变量配置您的 Django 应用程序。

如何使用

$ pip install django-environ
Enter fullscreen mode Exit fullscreen mode

.env在 Django 项目的根目录中创建一个文件(如下例所示):

DEBUG=on
SECRET_KEY=your-secret-key
DATABASE_URL=psql://urser:un-githubbedpassword@127.0.0.1:8458/database
SQLITE_URL=sqlite:///my-local-sqlite.db
Enter fullscreen mode Exit fullscreen mode

Django 应用程序中的使用(无需将其添加到 INSTALLED_APPS)


import environ
env = environ.Env(
    # set casting, default value
    DEBUG=(bool, False)
)
# reading .env file
environ.Env.read_env()

# False if not in os.environ
DEBUG = env('DEBUG')

# Raises django's ImproperlyConfigured exception if SECRET_KEY not in os.environ
SECRET_KEY = env('SECRET_KEY')

# Parse database connection url strings like psql://user:pass@127.0.0.1:8458/db
DATABASES = {
    # read os.environ['DATABASE_URL'] and raises ImproperlyConfigured exception if not found
    'default': env.db(),
    # read os.environ['SQLITE_URL']
    'extra': env.db('SQLITE_URL', default='sqlite:////tmp/my-tmp-sqlite.db')
}
Enter fullscreen mode Exit fullscreen mode

谢谢你!

鏂囩珷鏉ユ簮锛�https://dev.to/sm0ke/django-framework-popular-extensions-a-short-list-130
PREV
Django 用户资料 - 学习使用 Django 编写代码
NEXT
免费的 Django 仪表板