当前位置:网站首页>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

边栏推荐
- Postman environment variable settings
- The virtual machine Ping is connected to the host, and the host Ping is not connected to the virtual machine
- MySQL20-MySQL的数据目录
- API learning of OpenGL (2005) gl_ MAX_ TEXTURE_ UNITS GL_ MAX_ TEXTURE_ IMAGE_ UNITS_ ARB
- Kubesphere - deploy the actual combat with the deployment file (3)
- JDBC原理
- MySQL21-用戶與權限管理
- Install mysql5.5 and mysql8.0 under windows at the same time
- Mysql26 use of performance analysis tools
- [ahoi2009]chess Chinese chess - combination number optimization shape pressure DP
猜你喜欢

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

Csdn-nlp: difficulty level classification of blog posts based on skill tree and weak supervised learning (I)

Mysql30 transaction Basics

Mysql24 index data structure

MySQL 20 MySQL data directory

C language advanced pointer Full Version (array pointer, pointer array discrimination, function pointer)

CSDN博文摘要(一) —— 一个简单的初版实现

MySQL23-存儲引擎

MySQL24-索引的数据结构

Mysql23 storage engine
随机推荐
Development of C language standard
记一次某公司面试题:合并有序数组
API learning of OpenGL (2004) gl_ TEXTURE_ MIN_ FILTER GL_ TEXTURE_ MAG_ FILTER
MySQL31-MySQL事务日志
C language advanced pointer Full Version (array pointer, pointer array discrimination, function pointer)
Solve the problem that XML, YML and properties file configurations cannot be scanned
连接MySQL数据库出现错误:2059 - authentication plugin ‘caching_sha2_password‘的解决方法
MySQL23-存儲引擎
[recommended by bloggers] C # generate a good-looking QR code (with source code)
Generate PDM file from Navicat export table
Database middleware_ MYCAT summary
Are you monitored by the company for sending resumes and logging in to job search websites? Deeply convinced that the product of "behavior awareness system ba" has not been retrieved on the official w
Navicat 导出表生成PDM文件
【博主推荐】SSM框架的后台管理系统(附源码)
February 13, 2022-3-middle order traversal of binary tree
Kubernetes - problems and Solutions
API learning of OpenGL (2002) smooth flat of glsl
CSDN question and answer module Title Recommendation task (II) -- effect optimization
【博主推荐】C# Winform定时发送邮箱(附源码)
MySQL 20 MySQL data directory