Django 是一个高级 Python Web 框架,鼓励快速开发,遵循模型-模板-视图(MTV)模式。按资料说明,它开箱即用地内置了 ORM、模板引擎、管理站点、表单处理、身份认证和安全中间件。
用途 Django 用于构建 Python Web 应用,其设计强调快速开发,并自带一批常用组件,减少对外部库的依赖。
主要能力与组件
- ORM:通过模型类定义数据库表结构与字段关系。示例使用 models.Model、CharField、SlugField、TextField、ForeignKey、BooleanField、DateTimeField 等,并可通过 Meta 设置排序,通过 str 定义显示名称。
- 用户模型:示例继承 AbstractUser 扩展自定义用户(如 bio、avatar 字段)。
- 视图:支持函数视图与类视图,示例使用 ListView、DetailView、CreateView,并结合 LoginRequiredMixin 实现登录限制、paginate_by 分页、select_related 关联查询。
- URL 配置:通过 path、include 组织根 URL 与应用 URL,并可使用 app_name 命名空间。
- 管理后台:通过 @admin.register 注册模型,可配置 list_display、list_filter、search_fields、prepopulated_fields、raw_id_fields。
- 模板:使用 Django 模板语法,示例含 extends、block、for、empty、include 以及 date 过滤器。
- Django REST Framework:示例提供 ModelSerializer(含 source 只读字段)与 ModelViewSet(含 permission_classes、lookup_field、perform_create)。
- 迁移:使用 makemigrations、migrate、createsuperuser 管理数据库结构和管理员账户。
- 配置:settings.py 中可配置 SECRET_KEY、DEBUG、ALLOWED_HOSTS、AUTH_USER_MODEL、DATABASES(示例为 PostgreSQL)、STATIC_URL、STATIC_ROOT,并可从环境变量读取敏感信息。
- 测试:示例基于 django.test.TestCase、Client、reverse 编写模型与视图测试。
使用方式 安装与创建项目:pip install django;django-admin startproject myproject .;python manage.py startapp core。 运行开发服务器:python manage.py runserver 0.0.0.0:8000。 标准项目结构包含 manage.py、项目配置目录(settings.py、urls.py、wsgi.py、asgi.py)和各应用目录(models.py、views.py、urls.py、admin.py、forms.py、serializers.py、templates/、tests.py),以及项目级 templates 目录。
关键模式(资料列出)
- 使用 select_related 和 prefetch_related 避免 N+1 查询。
- 尽早设置 AUTH_USER_MODEL,首次迁移后难以更改。
- CRUD 使用类视图,自定义逻辑使用函数视图。
- 中间件顺序重要:SecurityMiddleware 在前,然后 SessionMiddleware。
- 使用 django-environ 或 os.environ 管理密钥,切勿硬编码。
- 生产部署前运行 python manage.py check --deploy。
适用场景 资料通过文章(Article)示例展示了内容型 Web 应用的模型、视图、URL、模板、管理后台、API 与测试的完整组织方式,可作为构建类似 Web 应用与 REST API 的参考。
限制 资料未提供关于性能上限、并发规模、授权许可、收费与价格、官方支持范围等方面的信息,暂未提供。是否适用于特定生产环境需要以官方文档与自身评估为准。