在本章中,我们将正式踏上Django快速开发实战的旅程,通过构建一个职位管理系统来深入理解Django框架的核心概念与强大功能。职位管理系统是一个典型的后台管理系统,旨在帮助组织或企业高效地管理其内部的职位信息,包括但不限于职位的创建、编辑、删除以及查询等功能。通过本章节的学习,你将学会如何从头开始搭建一个基于Django的Web应用,并熟悉Django的模型(Models)、视图(Views)、模板(Templates)和表单(Forms)等关键组件。
在开始之前,请确保你的开发环境中已经安装了Python和Django。如果尚未安装,可以通过Python的包管理工具pip来安装Django。打开你的命令行工具,执行以下命令:
pip install django
安装完成后,你可以通过运行django-admin --version
来检查Django是否成功安装,并查看其版本。
首先,我们需要创建一个新的Django项目。在命令行中,切换到你想存放项目的目录,然后执行以下命令:
django-admin startproject job_management_system
这条命令会创建一个名为job_management_system
的文件夹,其中包含了Django项目的基础结构。进入该文件夹:
cd job_management_system
在Django中,应用(App)是项目的组件,负责处理特定的业务逻辑。对于我们的职位管理系统,我们可以创建一个名为jobs
的应用。在项目根目录下(即包含manage.py
的目录),执行以下命令:
python manage.py startapp jobs
这将在你的项目中创建一个名为jobs
的新文件夹,里面包含了应用的基础文件。
模型是Django ORM(Object-Relational Mapping,对象关系映射)的核心,它允许我们以Python类的形式定义数据库中的表结构。在jobs/models.py
文件中,我们定义职位的模型:
from django.db import models
class Job(models.Model):
title = models.CharField(max_length=100, verbose_name="职位名称")
description = models.TextField(verbose_name="职位描述")
salary = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="薪资")
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")
def __str__(self):
return self.title
class Meta:
verbose_name = "职位"
verbose_name_plural = "职位"
上述代码定义了一个Job
模型,包含职位名称、描述、薪资、创建时间和更新时间等字段。
Django使用迁移(Migrations)来跟踪数据库结构的变更。为了将我们的模型同步到数据库中,我们需要先生成迁移文件,然后执行这些迁移。在项目根目录下,运行以下命令:
python manage.py makemigrations
python manage.py migrate
makemigrations
命令会检测所有应用中的模型变更,并生成相应的迁移文件。migrate
命令则会将这些迁移应用到数据库中,从而更新数据库结构。
Django自带了一个强大的后台管理系统,称为Django Admin。为了访问它,我们需要先创建一个管理员用户。在项目根目录下运行:
python manage.py createsuperuser
按照提示输入用户名、邮箱和密码等信息,完成管理员用户的创建。
为了让我们的Job
模型出现在Django Admin中,我们需要在jobs/admin.py
文件中注册它。如果该文件不存在,你可以手动创建它。然后添加以下内容:
from django.contrib import admin
from .models import Job
admin.site.register(Job)
现在,当你通过浏览器访问Django Admin(通常是http://127.0.0.1:8000/admin/
)并登录后,你将看到Job
模型已被列在可用模型列表中,并可以对其进行增删改查操作。
虽然Django Admin提供了基本的CRUD(Create, Read, Update, Delete)操作,但你可能想要自定义它的界面以满足特定的需求。例如,你可以通过修改admin.py
中的注册代码来添加自定义的列表显示字段、过滤器或表单字段集。
class JobAdmin(admin.ModelAdmin):
list_display = ('title', 'salary', 'created_at')
list_filter = ('created_at',)
search_fields = ('title', 'description')
admin.site.register(Job, JobAdmin)
这段代码为Job
模型定义了一个自定义的Admin类JobAdmin
,并设置了列表显示字段、列表过滤器和搜索字段。
最后,为了查看我们的职位管理系统在浏览器中的表现,可以启动Django的开发服务器:
python manage.py runserver
默认情况下,服务器会在http://127.0.0.1:8000/
上运行。现在,你可以打开浏览器,访问Django Admin页面,开始管理你的职位信息了。
通过本章的学习,你已经成功创建了一个基于Django的职位管理系统后台。我们从头开始,逐步完成了Django项目的创建、应用的添加、模型的定义、迁移的执行、管理员用户的创建、模型的Admin注册以及界面的自定义。在这个过程中,你不仅掌握了Django的基本工作流程,还深入了解了Django的核心组件——模型、迁移、Admin等。接下来,你可以继续探索Django的其他高级功能,如视图、模板、表单等,以进一步完善你的职位管理系统。