当前位置:网站首页>02-项目实战之后台员工信息管理
02-项目实战之后台员工信息管理
2022-07-06 09:13:00 【As。】
- 创建员工信息数据表;user (已创建过了)
- 定义模型Model类;进入myobject/myadmin/models.py;由于user表中id是自增的,所以不需要再定义
from django.db import models
from datetime import datetime
#员工账号信息模型
class User(models.Model):
username = models.CharField(max_length=50) #员工账号
nickname = models.CharField(max_length=50) #昵称
password_hash = models.CharField(max_length=100)#密码
password_salt = models.CharField(max_length=50) #密码干扰值
status = models.IntegerField(default=1) #状态:1正常/2禁用/9删除
create_at = models.DateTimeField(default=datetime.now) #创建时间
update_at = models.DateTimeField(default=datetime.now) #修改时间
def toDict(self):
return {
'id': self.id, 'username': self.username, 'nickname': self.nickname, 'password_hash': self.password_hash,' password_salt': self.password_salt, 'status': self.status, 'create_at': self.create_at.strftime('%Y-%m-%d %H:%M:%S'), 'update_at': self.update_at.strftime('%Y-%m-%d %H:%M:%S')}
class Meta:
db_table = "user" # 更改表名
- 将myobject/myadmin/index.py 复制一份到当前路径,名称改为user.py(每个页面的视图单独管理),添加6个函数(增删改查操作)
#员工信息管理的视图文件
from django.shortcuts import render
from django.http import HttpResponse
from myadmin.models import User
# Create your views here.
def index(request): #浏览信息
pass
def add(request): #加载信息添加表单
pass
def insert(request): #执行信息添加
pass
def delete(request, uid=0): #执行信息删除
pass
def edit(request, uid=0): #加载信息编辑表单
pass
def update(request, uid): #执行信息编辑
pass
- 配置url路由`
#后台管理子路由文件
from django.urls import path
from myadmin.views import index, user
urlpatterns = [
path('', index.index, name="myadmin_index"), #后台首页
#员工信息管理路由
path('user/', user.index, name="myadmin_user_index"), #浏览
path('user/add', user.add, name="myadmin_user_add"), #添加表单
path('user/insert', user.insert, name="myadmin_user_insert"), #执行添加
path('user/del/<int:uid>', user.delete, name="myadmin_user_delete"), #执行删除
path('user/edit/<int:uid>', user.edit, name="myadmin_user_edit"), #加载编辑表单
path('user/update/<int:uid>', user.update, name="myadmin_user_update"), #执行编辑
]
- 在模板中,完善浏览操作;在\myobject\templates\myadmin里新建一个user文件夹,在user文件夹中创建一个index.html文件;myobject/myadmin/user.py修改如下:
def index(request): #浏览信息
umod = User.objects
ulist = umod.all()
context = {
"userlist": ulist}
return render(request, "myadmin/user/index.html", context)
- 在\myobject\templates\myadmin\user\index.html中进行继承操作
{
% extends 'myadmin/base.html' %}
{
% block main_body %}
{
% endblock %}
- 在父模板(base.html)进行反解析操作

13.员工信息浏览
14.修改员工中的状态信息,判断status状态

15.分页,在user.py中操作
#员工信息管理的视图文件
from django.shortcuts import render
from django.http import HttpResponse
from myadmin.models import User
from django.core.paginator import Paginator #分页导包
def index(request,pIndex=1): #浏览信息
umod = User.objects #实例化对象
#ulist = umod.all() #查询所有数据
ulist = umod.filter(status__lt=9) #过滤信息,过滤status状态 小于9的 展示在页面
#执行分页处理
pIndex = int(pIndex)
page = Paginator(ulist, 5) #以每页5条数据分页
maxpages = page.num_pages #获取最大页数
#判断当前页是否越界
if pIndex > maxpages:
pIndex = maxpages
if pIndex < 1:
pIndex = 1
list2 = page.page(pIndex) #获取当前页数据
plist = page.page_range #获取页面列表信息
context = {
"userlist": list2, 'plist':plist, 'pIndex':pIndex, 'maxpages': maxpages}
return render(request, "myadmin/user/index.html", context) #模板渲染
def add(request): #加载信息添加表单
pass
def insert(request): #执行信息添加
pass
def delete(request, uid=0): #执行信息删除
pass
def edit(request, uid=0): #加载信息编辑表单
pass
def update(request, uid): #执行信息编辑
pass
15.在index.html中获取页面信息



16.搜索框 (模糊搜索名称和昵称,以及状态)
#员工信息管理的视图文件
from django.shortcuts import render
from django.http import HttpResponse
from myadmin.models import User
from django.core.paginator import Paginator #分页导包
from django.db.models import Q #搜索条件为或的
def index(request,pIndex=1): #浏览信息
umod = User.objects #实例化对象
#ulist = umod.all() #查询所有数据
ulist = umod.filter(status__lt=9) #过滤信息,过滤status状态 小于9的 展示在页面
mywhere=[]
#获取并判断搜索条件
kw = request.GET.get("keyword", None)
if kw:
ulist = ulist.filter(Q(username__contains=kw) | Q(nickname__contains=kw))
mywhere.append('keyword='+kw)
# 获取、判断并封装状态status搜索条件
status = request.GET.get('status', '')
if status != '':
ulist = ulist.filter(status=status)
mywhere.append("status=" + status)
#执行分页处理
pIndex = int(pIndex)
page = Paginator(ulist, 5) #以每页5条数据分页
maxpages = page.num_pages #获取最大页数
#判断当前页是否越界
if pIndex > maxpages:
pIndex = maxpages
if pIndex < 1:
pIndex = 1
list2 = page.page(pIndex) #获取当前页数据
plist = page.page_range #获取页面列表信息
context = {
"userlist": list2, 'plist':plist, 'pIndex':pIndex, 'maxpages': maxpages, "mywhere": mywhere}
return render(request, "myadmin/user/index.html", context) #模板渲染
def add(request): #加载信息添加表单
pass
def insert(request): #执行信息添加
pass
def delete(request, uid=0): #执行信息删除
pass
def edit(request, uid=0): #加载信息编辑表单
pass
def update(request, uid): #执行信息编辑
pass

边栏推荐
- 连接MySQL数据库出现错误:2059 - authentication plugin ‘caching_sha2_password‘的解决方法
- Swagger, Yapi interface management service_ SE
- [Thesis Writing] how to write function description of jsp online examination system
- API learning of OpenGL (2001) gltexgen
- Invalid default value for 'create appears when importing SQL_ Time 'error reporting solution
- Mysql27 index optimization and query optimization
- API learning of OpenGL (2002) smooth flat of glsl
- MySQL 29 other database tuning strategies
- 虚拟机Ping通主机,主机Ping不通虚拟机
- 导入 SQL 时出现 Invalid default value for ‘create_time‘ 报错解决方法
猜你喜欢

Redis的基础使用

Mysql26 use of performance analysis tools

【博主推荐】C#MVC列表实现增删改查导入导出曲线功能(附源码)

MySQL21-用戶與權限管理

MySQL21-用户与权限管理

Swagger, Yapi interface management service_ SE

Unicode decodeerror: 'UTF-8' codec can't decode byte 0xd0 in position 0 successfully resolved

MySQL22-逻辑架构

IDEA 导入导出 settings 设置文件

MySQL31-MySQL事务日志
随机推荐
MySQL21-用户与权限管理
Just remember Balabala
CSDN博文摘要(一) —— 一个简单的初版实现
MySQL 20 MySQL data directory
Mysql28 database design specification
@Controller, @service, @repository, @component differences
Postman environment variable settings
记一次某公司面试题:合并有序数组
Mysql30 transaction Basics
Case identification based on pytoch pulmonary infection (using RESNET network structure)
MySQL18-MySQL8其它新特性
npm一个错误 npm ERR code ENOENT npm ERR syscall open
MySQL22-逻辑架构
Solution: log4j:warn please initialize the log4j system properly
MySQL23-存储引擎
Mysql35 master slave replication
Detailed reading of stereo r-cnn paper -- Experiment: detailed explanation and result analysis
Discriminant model: a discriminant model creation framework log linear model
Redis的基础使用
Other new features of mysql18-mysql8