Django 在线练习入门指南
Django 是 Python 最流行的 Web 框架之一,掌握 Django 的最佳方式之一就是通过 Django 在线练习。本文将带你从零开始,快速了解如何构建一个简单的 Django 练习项目,并掌握其中关键知识点。
核心概念
Django 在线练习的核心在于通过实际项目操作,加深对框架的理解和使用。这类练习通常包括创建模型、设计视图、连接模板、配置 URL 等基本开发流程。
一个类比:就像学习游泳不能只看视频,Django 的学习必须通过动手写代码、调试、运行。通过 Django 在线练习,开发者可以熟悉 MVC(或 MVT)结构,提高开发效率。
基础语法
要开始 Django 在线练习,你首先需要掌握几个基础命令和模块的使用方式。
创建项目和应用
django-admin startproject mysite
cd mysite
python manage.py startapp practice_app
编写模型
在 practice_app/models.py 中定义一个简单的模型,例如一个“任务”模型:
from django.db import models
class Task(models.Model):
title = models.CharField(max_length=200) # 任务标题,最大长度 200
completed = models.BooleanField(default=False) # 是否完成,默认为 False
created_at = models.DateTimeField(auto_now_add=True) # 创建时间,自动添加
def __str__(self):
return self.title # 返回任务标题作为字符串表示
注册模型到管理后台
打开 practice_app/admin.py,添加如下代码,以便在 Django 管理后台中管理任务:
from django.contrib import admin
from .models import Task
admin.site.register(Task) # 注册 Task 模型到后台管理
进阶特性
Django 的强大之处在于其丰富的功能模块,以下是几个进阶特性,适合在 Django 在线练习中进一步探索:
| 特性 | 说明 | 示例 |
|---|---|---|
| 类视图(Class-Based Views) | 用类的方式编写视图,提高代码复用性 | CreateView, UpdateView 等 |
| 模板继承 | 使用 {% extends %} 复用 HTML 布局 |
适合构建统一的网页风格 |
| 表单处理 | 使用 Django 表单处理用户输入 | 自动验证、渲染、绑定模型 |
| REST API | 集成 Django REST Framework,构建 API 服务 | 适合前后端分离项目 |
使用类视图处理任务创建
在 practice_app/views.py 中使用 CreateView:
from django.views.generic.edit import CreateView
from .models import Task
class TaskCreateView(CreateView):
model = Task # 使用的模型
fields = ['title'] # 表单中显示的字段
template_name = 'task_form.html' # 使用的模板
success_url = '/' # 成功后跳转的页面
使用模板继承
在 practice_app/templates/base.html 中创建一个基础模板:
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}Django 在线练习{% endblock %}</title>
</head>
<body>
<header>
<h1>Django 在线练习</h1>
</header>
<main>
{% block content %}{% endblock %}
</main>
</body>
</html>
然后在子模板中继承它:
{% extends "base.html" %}
{% block title %}新增任务{% endblock %}
{% block content %}
<h2>新增任务</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }} <!-- 自动渲染表单字段 -->
<button type="submit">提交</button>
</form>
{% endblock %}
实战应用
创建任务列表页面
在 practice_app/views.py 中编写一个视图函数:
from django.shortcuts import render
from .models import Task
def task_list(request):
tasks = Task.objects.all() # 获取所有任务
return render(request, 'task_list.html', {'tasks': tasks}) # 渲染模板
在 practice_app/templates/task_list.html 中展示任务:
{% extends "base.html" %}
{% block title %}任务列表{% endblock %}
{% block content %}
<h2>任务列表</h2>
<ul>
{% for task in tasks %}
<li>{{ task.title }} - {{ task.created_at }}</li>
{% endfor %}
</ul>
{% endblock %}
配置 URL
在 practice_app/urls.py 中配置任务列表和创建的 URL:
from django.urls import path
from .views import task_list, TaskCreateView
urlpatterns = [
path('', task_list, name='task_list'), # 任务列表页面
path('create/', TaskCreateView.as_view(), name='task_create'), # 创建任务页面
]
别忘了在主项目的 urls.py 中包含这个应用的 URL:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('practice/', include('practice_app.urls')), # 包含练习应用的 URL
]
注意事项
在 Django 在线练习中,初学者容易遇到以下几个问题:
- 忘记迁移数据库:每次修改模型后,必须执行
python manage.py makemigrations和python manage.py migrate。 - 模板路径错误:Django 会自动查找
app_name/templates/app_name/路径下的模板,建议按此结构存放。 - 忽略 CSRF 保护:使用表单时,必须添加
{% csrf_token %},否则提交会失败。 - URL 模式拼写错误:URL 路由配置一旦出错,页面将无法访问,建议用
python manage.py runserver启动后访问查看错误日志。
总结
通过 Django 在线练习,你可以快速掌握从项目搭建、模型设计到视图和模板的完整开发流程。本文提供了基础命令和实战代码,适合初学者快速上手并加深理解。