当前位置:网站首页>02 staff information management after the actual project
02 staff information management after the actual project
2022-07-06 11:08:00 【As。】
- Create employee information data table ;user ( Already created )
- Defining models Model class ; Get into myobject/myadmin/models.py; because user In the table id Since the increase , So there is no need to define
from django.db import models
from datetime import datetime
# Employee account information model
class User(models.Model):
username = models.CharField(max_length=50) # Employee account number
nickname = models.CharField(max_length=50) # nickname
password_hash = models.CharField(max_length=100)# password
password_salt = models.CharField(max_length=50) # Password interference value
status = models.IntegerField(default=1) # state :1 normal /2 Ban /9 Delete
create_at = models.DateTimeField(default=datetime.now) # Creation time
update_at = models.DateTimeField(default=datetime.now) # Modification time
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" # Change table name
- take myobject/myadmin/index.py Copy a copy to the current path , Change the name to user.py( The view of each page is managed separately ), add to 6 A function ( Add, delete, change and check operation )
# View file of employee information management
from django.shortcuts import render
from django.http import HttpResponse
from myadmin.models import User
# Create your views here.
def index(request): # Browse information
pass
def add(request): # Load information add form
pass
def insert(request): # Perform information addition
pass
def delete(request, uid=0): # Execute information deletion
pass
def edit(request, uid=0): # Load the information editing form
pass
def update(request, uid): # Perform information editing
pass
- To configure url route `
# Background management sub route file
from django.urls import path
from myadmin.views import index, user
urlpatterns = [
path('', index.index, name="myadmin_index"), # The background page
# Employee information management route
path('user/', user.index, name="myadmin_user_index"), # Browse
path('user/add', user.add, name="myadmin_user_add"), # Add form
path('user/insert', user.insert, name="myadmin_user_insert"), # Execution add
path('user/del/<int:uid>', user.delete, name="myadmin_user_delete"), # Execution deletion
path('user/edit/<int:uid>', user.edit, name="myadmin_user_edit"), # Load edit form
path('user/update/<int:uid>', user.update, name="myadmin_user_update"), # Perform editing
]
- In the template , Improve browsing operation ; stay \myobject\templates\myadmin I'll build a new one user Folder , stay user Create a index.html file ;myobject/myadmin/user.py Revised as follows :
def index(request): # Browse information
umod = User.objects
ulist = umod.all()
context = {
"userlist": ulist}
return render(request, "myadmin/user/index.html", context)
- stay \myobject\templates\myadmin\user\index.html To inherit
{
% extends 'myadmin/base.html' %}
{
% block main_body %}
{
% endblock %}
- In parent template (base.html) Perform the anti parsing operation
13. Employee information browsing
14. Modify the status information in employees , Judge status state
15. Pagination , stay user.py In the operation
# View file of employee information management
from django.shortcuts import render
from django.http import HttpResponse
from myadmin.models import User
from django.core.paginator import Paginator # Paging Guide Package
def index(request,pIndex=1): # Browse information
umod = User.objects # Instantiate objects
#ulist = umod.all() # Query all the data
ulist = umod.filter(status__lt=9) # Filtering information , Filter status state Less than 9 Of Displayed on the page
# Perform paging
pIndex = int(pIndex)
page = Paginator(ulist, 5) # With every page 5 Data paging
maxpages = page.num_pages # Get maximum pages
# Judge whether the current page is out of bounds
if pIndex > maxpages:
pIndex = maxpages
if pIndex < 1:
pIndex = 1
list2 = page.page(pIndex) # Get the current page data
plist = page.page_range # Get page list information
context = {
"userlist": list2, 'plist':plist, 'pIndex':pIndex, 'maxpages': maxpages}
return render(request, "myadmin/user/index.html", context) # Template rendering
def add(request): # Load information add form
pass
def insert(request): # Perform information addition
pass
def delete(request, uid=0): # Execute information deletion
pass
def edit(request, uid=0): # Load the information editing form
pass
def update(request, uid): # Perform information editing
pass
15. stay index.html Get page information in
16. Search box ( Fuzzy search name and nickname , And the state )
# View file of employee information management
from django.shortcuts import render
from django.http import HttpResponse
from myadmin.models import User
from django.core.paginator import Paginator # Paging Guide Package
from django.db.models import Q # Search for or
def index(request,pIndex=1): # Browse information
umod = User.objects # Instantiate objects
#ulist = umod.all() # Query all the data
ulist = umod.filter(status__lt=9) # Filtering information , Filter status state Less than 9 Of Displayed on the page
mywhere=[]
# Get and judge the search conditions
kw = request.GET.get("keyword", None)
if kw:
ulist = ulist.filter(Q(username__contains=kw) | Q(nickname__contains=kw))
mywhere.append('keyword='+kw)
# obtain 、 Judge and encapsulate the state status search criteria
status = request.GET.get('status', '')
if status != '':
ulist = ulist.filter(status=status)
mywhere.append("status=" + status)
# Perform paging
pIndex = int(pIndex)
page = Paginator(ulist, 5) # With every page 5 Data paging
maxpages = page.num_pages # Get maximum pages
# Judge whether the current page is out of bounds
if pIndex > maxpages:
pIndex = maxpages
if pIndex < 1:
pIndex = 1
list2 = page.page(pIndex) # Get the current page data
plist = page.page_range # Get page list information
context = {
"userlist": list2, 'plist':plist, 'pIndex':pIndex, 'maxpages': maxpages, "mywhere": mywhere}
return render(request, "myadmin/user/index.html", context) # Template rendering
def add(request): # Load information add form
pass
def insert(request): # Perform information addition
pass
def delete(request, uid=0): # Execute information deletion
pass
def edit(request, uid=0): # Load the information editing form
pass
def update(request, uid): # Perform information editing
pass
边栏推荐
- Installation and use of MySQL under MySQL 19 Linux
- 1. Mx6u learning notes (VII): bare metal development (4) -- master frequency and clock configuration
- npm一个错误 npm ERR code ENOENT npm ERR syscall open
- JDBC原理
- CSDN question and answer tag skill tree (I) -- Construction of basic framework
- MySQL other hosts cannot connect to the local database
- QT creator design user interface
- CSDN博文摘要(一) —— 一个简单的初版实现
- Ansible practical series I_ introduction
- Detailed reading of stereo r-cnn paper -- Experiment: detailed explanation and result analysis
猜你喜欢
csdn-Markdown编辑器
Neo4j installation tutorial
MySQL master-slave replication, read-write separation
API learning of OpenGL (2002) smooth flat of glsl
[recommended by bloggers] C MVC list realizes the function of adding, deleting, modifying, checking, importing and exporting curves (with source code)
MySQL21-用戶與權限管理
Basic use of redis
A trip to Macao - > see the world from a non line city to Macao
Mysql21 - gestion des utilisateurs et des droits
Csdn-nlp: difficulty level classification of blog posts based on skill tree and weak supervised learning (I)
随机推荐
QT creator specify editor settings
frp内网穿透那些事
Valentine's Day is coming, are you still worried about eating dog food? Teach you to make a confession wall hand in hand. Express your love to the person you want
npm一个错误 npm ERR code ENOENT npm ERR syscall open
数据库高级学习笔记--SQL语句
CSDN问答标签技能树(二) —— 效果优化
报错解决 —— io.UnsupportedOperation: can‘t do nonzero end-relative seeks
MySQL20-MySQL的数据目录
La table d'exportation Navicat génère un fichier PDM
LeetCode #461 汉明距离
连接MySQL数据库出现错误:2059 - authentication plugin ‘caching_sha2_password‘的解决方法
IDEA 导入导出 settings 设置文件
Mysql22 logical architecture
MySQL的一些随笔记录
[BMZCTF-pwn] 11-pwn111111
CSDN博文摘要(一) —— 一个简单的初版实现
Win10: how to modify the priority of dual network cards?
Armv8-a programming guide MMU (2)
Some notes of MySQL
Ansible practical series I_ introduction