python3+django2开发一个简单的人员管理系统过程详解

我来为你详细讲解一下“Python3+Django2开发一个简单的人员管理系统”的完整攻略。

1. 环境搭建

首先,我们需要先安装Python3和Django2。如果你还没有安装过这两个库,可以参照以下步骤进行安装:

  • 安装Python3:可到Python官网下载安装包,然后根据提示安装即可。
  • 安装Django2:在终端或命令行中执行以下命令:
$ pip install Django==2.2.12

2. 创建项目和应用

  • 创建Django项目:在终端或命令行中执行以下命令:
$ django-admin startproject management  # 这里'management'是项目名称,可以任意更改
  • 创建Django应用:在终端或命令行中执行以下命令:
$ cd management/
$ python manage.py startapp person  # 这里'person'是应用名称,可以任意更改

3. 数据库配置

  • 数据库配置:在项目的settings.py中,找到DATABASES,修改默认的数据库配置,如下示例:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'management',
        'USER': 'root',
        'PASSWORD': '123456',  # 这里需要替换成你自己的数据库密码
        'HOST': '127.0.0.1',
        'PORT': '',
    }
}

4. 模型设计

  • 在应用person中,新建models.py文件,定义Person模型类。例如:
from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=128)
    age = models.IntegerField()
    gender = models.CharField(max_length=16)
    address = models.CharField(max_length=256)

5. 视图设计

  • 在应用person中,新建views.py文件。定义Person视图函数,用于实现对Person模型类进行增删改查操作。例如:
from django.shortcuts import render, redirect
from .models import Person

def person_list(request):
    persons = Person.objects.all()
    return render(request, 'person_list.html', {'persons': persons})

def person_add(request):
    if request.method == 'POST':
        name = request.POST['name']
        age = request.POST['age']
        gender = request.POST['gender']
        address = request.POST['address']
        person = Person(name=name, age=age, gender=gender, address=address)
        person.save()
        return redirect('person_list')

    return render(request, 'person_add.html')

def person_edit(request, id):
    person = Person.objects.get(id=id)
    if request.method == 'POST':
        person.name = request.POST['name']
        person.age = request.POST['age']
        person.gender = request.POST['gender']
        person.address = request.POST['address']
        person.save()
        return redirect('person_list')

    return render(request, 'person_edit.html', {'person': person})

def person_delete(request, id):
    person = Person.objects.get(id=id)
    person.delete()
    return redirect('person_list')

6. URL设计

  • 在应用person中,新建urls.py文件。定义Person URL。例如:
from django.urls import path
from .views import person_list, person_add, person_edit, person_delete

urlpatterns = [
    path('', person_list, name='person_list'),
    path('add/', person_add, name='person_add'),
    path('edit/<int:id>/', person_edit, name='person_edit'),
    path('delete/<int:id>/', person_delete, name='person_delete')
]
  • 在项目中urls.py中,添加Person URL。
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('person/', include('person.urls'))
]

7. 模板设计

  • 创建templates文件夹,用于存放html模板文件。
  • 在templates文件夹中,新建person_list.html、person_add.html、person_edit.html文件

person_list.html:

{% extends 'base.html' %}

{% block content %}
  <h2>Person List</h2>
  <a href="{% url 'person_add' %}">Add Person</a>
  <table border="1">
      <thead>
          <tr>
              <th>Name</th>
              <th>Age</th>
              <th>Gender</th>
              <th>Address</th>
              <th>Operation</th>
          </tr>
      </thead>
      <tbody>
          {% for person in persons %}
          <tr>
              <td>{{ person.name }}</td>
              <td>{{ person.age }}</td>
              <td>{{ person.gender }}</td>
              <td>{{ person.address }}</td>
              <td>
                <a href="{% url 'person_edit' person.id %}">Edit</a>
                <a href="{% url 'person_delete' person.id %}">Delete</a>
              </td>
          </tr>
          {% endfor %}
      </tbody>
  </table>
{% endblock %}

person_add.html:

{% extends 'base.html' %}

{% block content %}
  <h2>Add Person</h2>
  <form method="POST" action="{% url 'person_add' %}">
      {% csrf_token %}
      <label>Name:</label>
      <input type="text" name="name" /><br>
      <label>Age:</label>
      <input type="text" name="age" /><br>
      <label>Gender:</label>
      <input type="text" name="gender" /><br>
      <label>Address:</label>
      <input type="text" name="address" /><br>
      <input type="submit" value="Add" />
  </form>
{% endblock %}

person_edit.html:

{% extends 'base.html' %}

{% block content %}
  <h2>Edit Person</h2>
  <form method="POST" action="{% url 'person_edit' person.id %}">
      {% csrf_token %}
      <label>Name:</label>
      <input type="text" name="name" value="{{ person.name }}" /><br>
      <label>Age:</label>
      <input type="text" name="age" value="{{ person.age }}" /><br>
      <label>Gender:</label>
      <input type="text" name="gender" value="{{ person.gender }}" /><br>
      <label>Address:</label>
      <input type="text" name="address" value="{{ person.address }}" /><br>
      <input type="submit" value="Update" />
  </form>
{% endblock %}

8. 运行项目

  • 在终端或命令行中,执行以下命令,启动Django服务器:
$ python manage.py runserver
  • 打开浏览器,输入http://127.0.0.1:8000/person/,即可看到Person管理页面。

示例说明:

  • 示例1:新增Person信息
  • 点击页面左上方的“Add Person”按钮;
  • 在弹出的“Add Person”窗口中,填写需要新增的Person信息,如:Name=“Tom”, Age=“18”, Gender=“Male”, Address=“Beijing”;
  • 点击“Add”按钮,即可完成Person信息的新增操作。

  • 示例2:修改Person信息

  • 点击需要编辑的Person信息所在行的“edit”按钮;
  • 在弹出的“Edit Person”窗口中,修改需要修改的Person信息,如:Name=“Tom2”, Age=“20”, Gender=“Female”, Address=“Shanghai”;
  • 点击“Update”按钮,即可完成Person信息的修改操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3+django2开发一个简单的人员管理系统过程详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • django创建简单的页面响应实例教程

    下面是关于“django创建简单的页面响应实例教程”的完整攻略及示例说明: 一、环境及工具准备 为了完成这个教程,您需要具备以下环境和工具: Python 3.x(已安装并配置好环境变量) pip 包管理器(已安装) Django web框架(已安装) 二、Django项目创建 首先,在控制台中使用以下命令创建一个 Django 项目: django-adm…

    Django 2023年5月16日
    00
  • django基础知识之认识MVT MVC:

         MVT Django是一款python的web开发框架 与MVC有所不同,属于MVT框架 m表示model,负责与数据库交互 v表示view,是核心,负责接收请求、获取数据、返回结果 t表示template,负责呈现内容到浏览器 MVC 大部分开发语言中都有MVC框架 MVC框架的核心思想是:解耦 降低各功能模块之间的耦合性,方便变更,更容易重构代…

    Django 2023年4月13日
    00
  • [django]从前端返回字符串,后端转换为字典,执行数据添加操作

    具体如题: js代码如下: $(‘#bill_add’).click(function(){//合同添加 var bill1 = $(“#bill1”).val();var bill2 = $(“#bill2”).val();var bill3 = $(“#bill3”).val();var bill4 = $(“#bill4”).val();var bil…

    Django 2023年4月13日
    00
  • 使用Django搭建web服务器的例子(最最正确的方式)

    请看下面的攻略,其中包含两个示例说明。 使用Django搭建web服务器的例子(最最正确的方式) 示例1:创建一个Django项目 安装Django bash pip install Django 创建Django项目 bash django-admin startproject myweb 这里创建了名为myweb的Django项目。 项目的目录结构如下:…

    Django 2023年5月16日
    00
  • django+celery +rabbitmq

    celery是一个python的分布式任务队列框架,支持 分布的 机器/进程/线程的任务调度。采用典型的生产者-消费者模型 包含三部分:1. 队列 broker :可使用redis ,rabbitmq ,或关系数据库作为broker 2.处理任务的消费者workers : 队列中有任务时就发出通知,worker收到通知就去处理 3.任务结果存储 backen…

    Django 2023年4月13日
    00
  • [django]form不清空问题解决

    https://www.cnblogs.com/OldJack/p/7118396.html 有时候提交表单后,发现某个字段写错了,但是form的其他字段竟然被清空,这个万万不能接受.所有django的form后端生成form的html,渲染到前端可以解决1.前端写form的html2.django的form生成前端form所需的html forms.htm…

    Django 2023年4月10日
    00
  • Django Rest framework 框架

    一、开发模式:     1. 普通开发方式(前后端放在一起写)   2. 前后端分离(前后台通过ajaxo交互)     后端(django rest framework写的) <—-ajaxo—>  前端(vue写的) <—– >  用户     好处:   二、后端开发     为前端提供url(API的开发或者接口…

    Django 2023年4月13日
    00
  • Django加载配置的过程详解

    下面我将为你详细讲解Django加载配置的过程,并提供两个示例说明。 一、Django加载配置的过程 Django加载配置的过程分为以下几个步骤: 1. 执行manage.py 当我们执行python manage.py时,Django会加载manage.py文件,并进入django.core.management.execute_from_command_…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部