Skip to main content

Django 基础用法

什么是 Django?

Django 是一个功能强大的 Python Web 框架,遵循 MVC 设计模式,提供了一整套完整的 Web 开发解决方案。

info

Django 提供了内置的 ORM、用户认证、管理后台等功能,使开发变得更加高效。

安装 Django

pip install django

创建 Django 项目

django-admin startproject myproject
cd myproject
python manage.py runserver

运行后访问 http://127.0.0.1:8000/ 即可看到 Django 欢迎页面。

Django 项目结构

myproject/
│── manage.py # 管理 Django 项目
│── myproject/ # 项目主目录
│ │── __init__.py
│ │── settings.py # 项目配置
│ │── urls.py # URL 路由
│ │── wsgi.py # WSGI 入口
│── myapp/ # Django 应用
│ │── models.py # 数据模型
│ │── views.py # 视图
│ │── urls.py # 应用路由
│ │── admin.py # 后台管理
│ │── migrations/ # 数据库迁移文件

创建 Django 应用

python manage.py startapp myapp

定义数据模型

from django.db import models

class User(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField(unique=True)
created_at = models.DateTimeField(auto_now_add=True)

迁移数据库

python manage.py makemigrations
python manage.py migrate

创建 Django 视图和路由

from django.http import JsonResponse
from django.shortcuts import get_object_or_404
from .models import User

def user_list(request):
users = list(User.objects.values())
return JsonResponse(users, safe=False)

def user_detail(request, user_id):
user = get_object_or_404(User, id=user_id)
return JsonResponse({'name': user.name, 'email': user.email})

配置 URL

from django.urls import path
from .views import user_list, user_detail

urlpatterns = [
path('users/', user_list, name='user_list'),
path('users/<int:user_id>/', user_detail, name='user_detail'),
]

启用 Django Admin 管理后台

from django.contrib import admin
from .models import User

admin.site.register(User)
python manage.py createsuperuser

使用 Django REST Framework 进行 API 开发

pip install djangorestframework
from rest_framework import serializers, viewsets
from .models import User

class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'

class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer

配置 Django REST Framework 路由

from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import UserViewSet

router = DefaultRouter()
router.register(r'users', UserViewSet)

urlpatterns = [
path('api/', include(router.urls)),
]

结论

Django 提供了一整套功能完备的 Web 开发工具,适用于快速开发和大规模应用。

更多 Django 资源