注意: 学习需具备Python语言能力与对django有一定的熟悉
一. 认识 Django 框架
1.1 什么是 Django?
Django 是一个由 Python 编写的高级 Web 框架,它鼓励快速开发和清晰、实用的设计。Django 主要关注以下几点:
• 快速开发:Django 通过一系列设计原则和工具,帮助开发者快速构建和部署 Web 应用。
• 干净且实用的设计:Django 强调代码重用和 “Don’t Repeat Yourself”(DRY)原则。
• 安全性:Django 提供内置的安全功能,如防止 SQL 注入、跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等。
1.2 Django 的主要组件
• MTV 架构:Django 使用 Model-Template-View(MTV)架构模式,这是它与常见的 MVC 架构的主要区别。
• Model:处理与数据库相关的所有内容。
• Template:负责展示数据的前端部分。
• View:包含业务逻辑和应用程序的功能。
• ORM(对象关系映射) :Django 内置了强大的 ORM,帮助开发者通过 Python 代码与数据库进行交互,而不需要编写 SQL。
• 内置管理站点:Django 自动生成一个功能齐全的管理站点,帮助管理员管理数据。
二. 认识 Django 生态
2.1 Django Packages
Django 社区非常活跃,有大量的开源包和库可以使用,这些包可以大大简化开发过程。例如:
• Django REST framework(DRF) :一个强大的工具集,用于构建 Web API。
• Django Allauth:一个全面的认证应用,支持社交登录和本地账户注册。
• Django Channels:用于处理 WebSockets 和其他异步协议。
2.2 Django 社区
Django 拥有一个活跃的社区和丰富的资源:
• 文档:Django 的官方文档非常详尽,涵盖了框架的各个方面。
• 论坛和讨论组:如 Stack Overflow、Django Users Google Group 等,是获取帮助和分享知识的好地方。
• 会议和聚会:如 DjangoCon,提供了与社区其他成员面对面交流的机会。
三. Django 下的 REST framework
3.1 什么是 Django REST framework?
Django REST framework(DRF)是一个强大且灵活的工具集,用于构建 Web API。它与 Django 完全集成,提供了一系列功能来简化 API 的开发:
• 序列化:将复杂的数据类型(如查询集和模型实例)转换为 JSON、XML 等格式。
• 认证和权限:内置多种认证和权限策略。
• 视图和视图集:提供了通用的视图和视图集来简化常见的 API 操作。
• 路由:自动生成 API 的 URL 路由。
3.2 DRF 的主要组件
• Serializers:定义数据的序列化和反序列化规则。
• ViewSets:将一组相关的视图逻辑组合在一起。
• Routers:自动生成 URL 配置。
• Authentication:支持多种认证方式,如 Token、OAuth、Session 认证等。
四. 配置 Django 支持 REST framework
4.1 安装 Django REST framework
首先,需要安装 Django 和 Django REST framework:
$ pip install django djangorestframework
4.2 配置 Django 项目
INSTALLED_APPS = [
...
'rest_framework',
]
4.3 创建 Django 应用并配置 DRF
- 创建 Django 应用:
python manage.py startapp api
- 定义模型(以一个简单的 Book 模型为例):
# api/models.py
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
published_date = models.DateField()
- 创建序列化器:
# api/serializers.py
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = '__all__'
- 创建视图集:
# api/views.py
from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
- 配置 URL 路由:
# api/urls.py
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import BookViewSet
router = DefaultRouter()
router.register(r'books', BookViewSet)
urlpatterns = [
path('', include(router.urls)),
]
然后在项目的 urls.py 中包含应用的 URL:
# project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('api.urls')),
]
4.4 运行项目
执行数据库迁移命令并启动服务器:
$ python manage.py migrate
$ python manage.py runserver
访问 http://127.0.0.1:8000/api/books/,你应该能看到一个简单的 API 接口,可以进行 CRUD 操作。
通过这些步骤,Django 项目已经成功配置并支持 Django REST framework,具备了构建 RESTful API 的能力。