编程语言
首页 > 编程语言> > Python3+Django3开发简单的人员管理系统

Python3+Django3开发简单的人员管理系统

作者:互联网

1、使用PyCharm创建Django项目

Python3+Django3开发简单的人员管理系统

Python3+Django3开发简单的人员管理系统

记得安装mysqlclient

(1)数据库配置

我们在项目的 settings.py 文件中找到 DATABASES 配置项,将其信息修改为:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django
        'NAME': 'userinfo',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

Python3+Django3开发简单的人员管理系统

这里添加了中文注释,所以你需要在 HelloWorld/settings.py 文件头部添加 # -*- coding: UTF-8 -*-。

上面包含数据库名称和用户的信息,它们与 MySQL 中对应数据库和用户的设置相同。Django 根据这一设置,与 MySQL 中相应的数据库和用户连接起来。

(2)更改语言、时区 和 所有主机都可访问

我们在项目的 settings.py 文件中找到ALLOWED_HOSTSLANGUAGE_CODETIME_ZONE配置项,将其信息修改为:

ALLOWED_HOSTS = ['*']

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-Hans'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

(3)修改 TestModel/models.py 文件:

from django.db import models

# Create your models here
class User(models.Model):
    GENDER_CHOICES = (
        ('男','男'), ('女','女'),
    )
    name = models.CharField(max_length=20, verbose_name='姓名', unique=True)
    birthday = models.DateTimeField(max_length=10,verbose_name='生日', null=True,blank=True)
    gender = models.CharField(max_length=30, choices=GENDER_CHOICES, verbose_name='性别')
    account = models.IntegerField(default=0,verbose_name='工号')
    age = models.IntegerField(default=18, verbose_name='年龄')

以上的类名代表了数据库表名,且继承了models.Model,类里面的字段代表数据表中的字段(name),数据类型则由CharField(相当于varchar)、DateField(相当于datetime), max_length 参数限定长度。

(4)创建数据库

记得在数据库创建UserInfo数据库

<1>可在cmd命令行中创建数据库

G:\四期\python\UserSystem>mysql -uroot -p 
#登陆数据库

mysql> CREATE DATABASE xgp DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
#创建utf8的数据库

<2>mysql管理器中创建数据库

Python3+Django3开发简单的人员管理系统

Python3+Django3开发简单的人员管理系统

(5)创建表结构

$ python manage.py migrate   # 创建表结构
//失败了可用python manage.py migrate UserInfo
//失败了可用python3 manage.py migrate UserInfo

$ python manage.py makemigrations UserInfo  # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate UserInfo   # 创建表结构

数据库生成以下表:

Python3+Django3开发简单的人员管理系统

(6)访问一下

记得启动项目

Python3+Django3开发简单的人员管理系统

2、Django Admin 管理工具

Django 提供了基于 web 的管理工具。

Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它:

#/HelloWorld/HelloWorld/settings.py 文件代码:
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'UserInfo.apps.UserinfoConfig',
]

django.contrib是一套庞大的功能集,它是Django基本代码的组成部分。

(1)激活管理工具

通常我们在生成项目时会在 urls.py 中自动设置好,我们只需去掉注释即可。

配置项如下所示:

#/HelloWorld/HelloWorld/urls.py 文件代码:
from django.contrib import admin
from django.urls import path

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

当这一切都配置好后,Django 管理工具就可以运行了。

(2)使用管理工具

启动开发服务器,然后在浏览器中访问 http://127.0.0.1:8000/admin/,得到如下界面

Python3+Django3开发简单的人员管理系统

因为我现在是新建了个项目所以需要创建表结构:

$ python manage.py migrate UserInfo   # 创建表结构,指定数据库
//失败了可用python3 manage.py migrate

$ python manage.py makemigrations UserInfo  # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate UserInfo   # 创建表结构

你可以通过命令 python manage.py createsuperuser 来创建超级用户,如下所示:

# python manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: admin@runoob.com
Password:
Password (again):
Superuser created successfully.

之后输入用户名密码登录,界面如下:

Python3+Django3开发简单的人员管理系统

(3)为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin。

from django.contrib import admin
from . models import User

class HostAdmin(admin.ModelAdmin):
    list_display = [
        'name', 'birthday', 'gender', 'account', 'age',
    ]
    search_fields = ('name',)
admin.site.register(User,HostAdmin)
admin.AdminSite.site_header = '运维系统管理后台'
admin.AdminSite.site_title = '运维系统'

浏览器访问一下

Python3+Django3开发简单的人员管理系统

Python3+Django3开发简单的人员管理系统

设置两个员工信息并查看一下

Python3+Django3开发简单的人员管理系统

userinfo数据库的userinfo_user表会保存员工信息:

Python3+Django3开发简单的人员管理系统

标签:manage,管理系统,admin,数据库,py,django,models,Django3,Python3
来源: https://blog.51cto.com/14320361/2488448