Django 是一个功能强大的 Python Web 框架,以其“快速开发、高效、优雅”而著称。它提供了从 Web 开发的数据库处理、模板引擎到路由管理的全套解决方案,特别适合构建中小型项目和快速迭代开发。
Django 是由 Python 编写的开源 Web 应用框架,其核心理念是 DRY (Don’t Repeat Yourself),即“不要重复自己”。通过内置的强大功能,Django 提供了高度集成的工具链,开发者无需重复造轮子即可完成复杂应用。
Django 遵循 MVC (Model-View-Controller) 的设计模式,实际实现中被称为 MTV:
确保已安装 Python 3.8 及以上版本。
pip install django运行以下命令创建一个新的项目:
django-admin startproject myproject项目结构如下:
myproject/
manage.py # 项目管理入口
myproject/
__init__.py # 包初始化文件
settings.py # 配置文件
urls.py # URL 路由配置
wsgi.py # 部署文件进入项目目录并运行:
python manage.py runserver打开浏览器访问 http://127.0.0.1:8000,即可看到 Django 的默认欢迎页面。
在项目中创建一个名为 blog 的应用:
python manage.py startapp blog创建后,需在 settings.py 的 INSTALLED_APPS 中注册:
INSTALLED_APPS = [
...
'blog',
]在 blog/models.py 文件中定义博客模型:
from django.db import models
class BlogPost(models.Model):
title = models.CharField(max_length=100) # 博客标题
content = models.TextField() # 博客内容
created_at = models.DateTimeField(auto_now_add=True) # 创建时间
updated_at = models.DateTimeField(auto_now=True) # 更新时间
def __str__(self):
return self.title生成迁移文件并应用到数据库:
python manage.py makemigrations
python manage.py migrate在 blog/admin.py 注册模型:
from django.contrib import admin
from .models import BlogPost
admin.site.register(BlogPost)启动服务器后,访问 http://127.0.0.1:8000/admin 即可使用 Django 的管理后台添加博客文章。
在 blog/views.py 中定义视图函数:
from django.shortcuts import render
from .models import BlogPost
def blog_list(request):
posts = BlogPost.objects.all() # 查询所有博客
return render(request, 'blog_list.html', {'posts': posts})在 blog/urls.py 配置路由:
from django.urls import path
from . import views
urlpatterns = [
path('', views.blog_list, name='blog_list'),
]在项目的 urls.py 中引入 blog 的路由:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]在 blog/templates 目录下创建模板文件 blog_list.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>博客列表</title>
</head>
<body>
<h1>博客列表</h1>
<ul>
{% for post in posts %}
<li>
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
<small>创建于 {{ post.created_at }}</small>
</li>
{% endfor %}
</ul>
</body>
</html>启动服务器,访问 http://127.0.0.1:8000/blog,即可看到博客列表页面。
Django 提供了完善的用户认证系统:
django.contrib.auth.forms.UserCreationFormdjango.contrib.auth.views.LoginViewPermission 和 Group 模型实现。Django 可以通过 Django REST Framework (DRF) 快速构建 API 服务:
pip install djangorestframework创建 RESTful API 的示例:
from rest_framework import serializers, viewsets
from .models import BlogPost
class BlogPostSerializer(serializers.ModelSerializer):
class Meta:
model = BlogPost
fields = '__all__'
class BlogPostViewSet(viewsets.ModelViewSet):
queryset = BlogPost.objects.all()
serializer_class = BlogPostSerializer配置路由:
from rest_framework.routers import DefaultRouter
from blog.views import BlogPostViewSet
router = DefaultRouter()
router.register(r'posts', BlogPostViewSet)
urlpatterns = [
path('api/', include(router.urls)),
]Django 提供了内置的单元测试工具:
from django.test import TestCase
from .models import BlogPost
class BlogPostTestCase(TestCase):
def setUp(self):
BlogPost.objects.create(title="测试标题", content="测试内容")
def test_blogpost_creation(self):
post = BlogPost.objects.get(title="测试标题")
self.assertEqual(post.content, "测试内容")通过 Django,我们可以快速搭建功能强大的 Web 应用。从模型设计到模板渲染,Django 提供了完善的工具链,极大地降低了开发复杂度。如果你想进一步了解,可以阅读 Django 官方文档并尝试完成更多功能,如权限管理、第三方集成等。
期待你的 Django 项目! 🎉