开发环境:

  • Microsoft Windows 10 Enterprise LTSC [Version 10.0.19044.1586], locale zh-CN

  • Python 3.8.10

  • PyCharm 2021.2 (Professional Edition)

  • Visual Studio Code, 64-bit edition (version 1.67.2)


PyCharm 中创建 Django 项目

PyCharm 菜单中选择 File -> New Project, 在弹出的 新项目 对话框中选择 项目类型保存位置 等信息。

修改项目的 语言时区 配置

打开文件 myproject/settings.py, 找到 LANGUAGE_CODETIME_ZONEUSE_TZ 并进行修改, 如下图所示:

1
2
3
4
5
6
7
8
LANGUAGE_CODE = 'zh-Hans'  # 语言代码

TIME_ZONE = 'Asia/shanghai' # 时区

USE_I18N = True

USE_TZ = False # 是否采用UTC时间

在项目内创建应用

在项目文件夹中按住键盘的 Shift, 点鼠标 右键, 选择 在此处打开PowerShell窗口在此处打开命令窗口 (Windows 7)

  1. 激活虚拟环境, 命令: venv\Scripts\activate
1
2
PS D:\PycharmProjects\myproject> .\venv\Scripts\activate
(venv) PS D:\PycharmProjects\myproject>
  1. 创建应用的命令: python manage.py startapp <应用名称>

例如:

1
2
(venv) PS D:\PycharmProjects\myproject> python manage.py startapp department
(venv) PS D:\PycharmProjects\myproject>

添加新创建的应用到项目中

打开 djangoProject/settings.py 文件, 在 INSTALLED_APPS 中添加应用名称, 如下所示:

1
2
3
4
5
6
7
8
9
10
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

'department', # 通过 应用名 安装应用, 适用于大多数情况
]

定义模型类

数据库的每个表定义一个模型类, id 字段会自动生成, 其他字段根据数据表的进行定义, 类似以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from django.db import models


class Department(models.Model):
"""
组织架构:用于保存有关联业务的其他公司 或 单位内部的部门信息
"""

# 组织架构选项
type_choices = (('firm', '公司'), ('department', '部门'))
# max_length: 最大长度; verbose_name: 字段备注名
title = models.CharField(max_length=60, verbose_name="名称")
type = models.CharField(max_length=20, choices=type_choices,
default='department', verbose_name='类型')
# null=True: 空值时存为null; blank=True: 允许为空;
description = models.CharField(max_length=200, null=True,
blank=True, verbose_name='描述')
# ForeignKey: 关联关系; on_delete=models.CASCADE: 级联操作,外键表随主键表更新
parent = models.ForeignKey('self', null=True, blank=True,
verbose_name='上级部门', on_delete=models.CASCADE)

class Meta:
verbose_name = '组织构架' # 对象的可读名称, 单数
verbose_name_plural = verbose_name # 对象的可读名称, 复数

def __str__(self):
"""
返回对象的描述信息
"""
return self.title

定义表单类

表单表用于添加或编辑数据, 在应用中添加名为 forms.py 的表单类文件, 在已经定义好模型类的基础上, 最简单的表单类定义类似以下代码:

1
2
3
4
5
6
7
8
from django import forms
from .models import Department # 导入模型类


class DepartmentEditForm(forms.ModelForm):
class Meta:
model = Department # 表单来自于指定的模型类 Department
fields = '__all__' # 表单类包含指定模型类的中的所有字段

添加被视图调用的模板文件

模板文件夹 templates 中放置用于显示的网页文件, 不包含样式的最简单版本请参考最后一次上课的例子

添加视图函数(或视图类)

打开相应的应用文件夹中的 views.py 文件, 添加用于查、改、增、删除的函数, 具体内容可参考:
https://hujiyi.github.io/2022/07/04/create-an-app-in-django-004/

定义路由

定义应用的子路由

在应用文件夹中添加名为 urls.py的路由文件, 类似以下内容:

1
2
3
4
5
6
7
8
9
10
11
from django.urls import path
from . import views

urlpatterns = [
path('', views.index, name='index'),
path('create/', views.create, name='create'),
path('<int:id>/', views.detail, name='detail'),
path('update/<int:id>/', views.update, name='update'),
path('delete/<int:did>/', views.delete, name='delete')
]

添加子路由到项目路由中

打开 djangoProject/urls.py 文件, 编辑内容类似以下代码:

1
2
3
4
5
6
7
8

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('', include('department.urls')), # 包含新增应用的子路由
]

参考资料:

  1. Django v4.0 中文文档

  2. Django入门与实践教程

  3. Bootstrap5 中文手册

===END===