基于django的视频点播网站开发-step11-后台用户管理功能...

news/2024/5/7 23:36:05/文章来源:https://blog.csdn.net/weixin_34355715/article/details/89534914

用户管理功能,包含用户添加、列表展示、编辑、删除四大功能。下面我们一一揭晓。

用户添加

我们先实现用户添加功能,我们现在urls.py下添加相关的路由

path('user_add/', views.UserAddView.as_view(), name='user_add'),
path('user_list/', views.UserListView.as_view(), name='user_list'),
path('user_edit/<int:pk>',views.UserEditView.as_view(), name='user_edit'),
path('user_delete/', views.user_delete, name='user_delete'),

用户添加的视图类是UserAddView

class UserAddView(SuperUserRequiredMixin, generic.View):def get(self, request):form = UserAddForm()return render(self.request, 'myadmin/user_add.html', {'form': form})def post(self, request):form = UserAddForm(data=request.POST)if form.is_valid():user = form.save(commit=False)password = form.cleaned_data.get('password')user.set_password(password)user.save()return render(self.request, 'myadmin/user_add_success.html')return render(self.request, 'myadmin/user_add.html', {'form': form})

这是一个普通的视图类,通过get()和post()来完成用户添加的功能,get里面负责页面的展示,post里面负责逻辑处理。在get中,初始化form为UserAddForm,因为添加的用户是有类别的,所以我们在UserAddForm中应用了is_staff字段来表示管理员。在post中,我们通过user.set_password(password)来设置新密码。user.save()来保存记录到数据库。保存成功后会跳转到myadmin/user_add_success.html页面。

用户列表

用户添加成功后,当你点击用户列表,即可看到用户列表数据,用户列表我们配置的路由是

path('user_list/', views.UserListView.as_view(), name='user_list'),

使用的是UserListView视图类,该类是继承自ListView通用视图类的。因此 只需要我们简单的配置几下,就能实现列表功能。UserListView代码如下

class UserListView(AdminUserRequiredMixin, generic.ListView):model = Usertemplate_name = 'myadmin/user_list.html'context_object_name = 'user_list'paginate_by = 10q = ''def get_context_data(self, *, object_list=None, **kwargs):context = super(UserListView, self).get_context_data(**kwargs)paginator = context.get('paginator')page = context.get('page_obj')page_list = get_page_list(paginator, page)context['page_list'] = page_listcontext['q'] = self.qreturn contextdef get_queryset(self):self.q = self.request.GET.get("q", "")return User.objects.filter(username__contains=self.q).order_by('-date_joined')

我们知道ListView是有多个回调函数的,这里就是通过get_context_data()和get_queryset()回调函数来实现列表中的功能的。在get_context_data()中实现了列表分页功能,在get_queryset()中实现了搜索功能。

配置的模板是myadmin/user_list.html,显示效果如下

用户编辑

当你点击编辑按钮的时候,即可进入编辑页面。对应的路由是

path('user_edit/<int:pk>',views.UserEditView.as_view(), name='user_edit'),

即UserEditView

class UserEditView(SuperUserRequiredMixin, generic.UpdateView):model = Userform_class = UserEditFormtemplate_name = 'myadmin/user_edit.html'def get_success_url(self):messages.success(self.request, "保存成功")return reverse('myadmin:user_edit', kwargs={'pk': self.kwargs['pk']})

同样是继承自UpdateView,仅需要配置好model、form_class、template_name即可,简单至极。

效果如下

用户删除

当你点击删除按钮的时候,会弹出确认框让你删除。然后网站通过ajax调用user_delete来实现真正的删除操作,其中,ajax代码位于static/js/myadmin/user_list.js

真正的删除函数是user_delete,下面是它的真面目

@ajax_required
@require_http_methods(["POST"])
def user_delete(request): user_id = request.POST['user_id']instance = User.objects.get(id=user_id) instance.delete()return JsonResponse({"code": 0, "msg": "success"})

首先获取到当前用户的实例,然后通过 instance.delete() 删除之。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_706915.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SEO【总结】by 2019年5月

2019独角兽企业重金招聘Python工程师标准>>> 关键点&#xff1a; 1、代码 1.1、seo前端代码&#xff1a;基于Html代码的SEOherf&#xff1a;https://my.oschina.net/u/2862573/blog/3030664 注意的要点&#xff1a; h1&#xff0c;h2的内容很关键 网页的压缩、静态化…

新手学Python推荐的四本书籍+2个资源网站

2019独角兽企业重金招聘Python工程师标准>>> 很多伙伴初学Python&#xff0c;会问到&#xff1a;有没有好的学习书籍推荐&#xff1f;有没有好的学习网站推荐&#xff1f; 针对这类伙伴的问题&#xff0c;小优给大家整理了学习Python的四本书籍2个资源网站&#xff…

工具分享 --- 分享一个在线制作ico的网站

还不错… 生成后一般放在imgs的下面. link:favicon tab 导入链接http://www.faviconico.org/

ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(10)之素材管理

源码下载地址&#xff1a;http://www.yealuo.com/Sccnn/Detail?KeyValuec891ffae-7441-4afb-9a75-c5fe000e3d1c 素材管理模块也是我们这个项目的核心模块&#xff0c;里面的增删查改都跟文章管理模块相同或者相似&#xff0c;唯一不同点可能是对附件的上传处理&#xff0c;但…

ccentos 7下安装php5.6并使用nginx + php-fpm部署多个不同端口网站

作为一个的勤杂工&#xff0c;近期因公司内部信息化的需求&#xff0c;给新进员工提供基础的知识培训和介绍&#xff0c;也为了给公司内部建立一个沟通交流的平台&#xff0c;百度找了开源的百科系统HDwiki和开源的问答系统Tipask问答系统&#xff0c;蛋痛的这两套系统均是phpm…

VS2017 网站打包发布生成的文件中包含.pdb文件,解决办法

右键点击项目属性&#xff0c;选择打包/发布 Web&#xff0c;勾选 排除生成的调试符号&#xff1a; 再次发布&#xff0c;就不会再生成.pdb文件 转载于:https://www.cnblogs.com/JoinLet/p/10297254.html

网站性能优化--CRP

网站性能优化–CRP 为了把HTML、CSS和JavaScript转化成活灵活现、绚丽多彩的网页&#xff0c;浏览器需要处理一系列的中间过程&#xff0c;优化性能其实就是了解这个过程中发生了什么-即CRP(Critical Rendering Path&#xff0c;关键渲染路径)。首先&#xff0c;我们从头开始快…

【PHP】xampp配置多个监听端口和不同的网站目录(转)

转自&#xff1a;https://blog.csdn.net/cc1314_/article/details/75646344 windows下使用xampp配置多个监听端口和不同的网站目录 一&#xff1a;配置Apache文件httpd.conf打开Apache的配置文件httpd.conf&#xff0c;可以通过点击xampp的Apache的config下的Apache(httpd.conf…

学习网站大汇集

一.综合类学习网站&#xff08;中文&#xff09; 1.网易公开课&#xff1a;https://open.163.com/。上面有TED、可汗学院、国内外高校公开课的免费资源。站内内容完全免费&#xff0c;良心推荐。 2.网易云课堂&#xff1a;http://study.163.com/。网易旗下付费学习平台&#…

【一些网站的收集】包含机器学习深度学习大牛主页等

数学概念部分 旋转矩阵、欧拉角、四元数的比较 欧拉角和四元数的表示 四元数与旋转 B样条曲线 非常好的概率统计学习的主页 误差方差偏差 编程语言学习 C#编程视频 OpenGL编程NeHe OpenGL官网 OpenGL“我叫MT“纯手工3D动画制作之1——基础介绍 【强大】非常好的Op…

Catlike Coding网站文章解析 -- 1.Procedural Grid

原文英文版链接https://catlikecoding.com/unity/tutorials/procedural-grid/&#xff0c;里面有每一部分的untiy工程链接&#xff0c;文章内容也更详实。 本章内容&#xff1a; 创建一系列点使用协程实现他们的摆放位置定义一个由三角形组成的平面自动生成法线添加纹理坐标和…

Catlike Coding网站文章解析 -- 2.Procedural Grid

本章内容 创建一个闭合的cube mesh给cube添加带弧度平滑的边缘定义法线使用sub-meshes&#xff08;子mesh&#xff09;创建一个常规shader合并碰撞体1.合成一个cube 上一章https://mp.csdn.net/postedit/89474068我们已经实现了一个平面mesh。一个cube由6个平面组成&#xff…

linux location root访问文件夹404_如何使网站支持https访问?nginx配置https证书

购买SSL证书要想使用https访问你的网址&#xff0c;首先得拥有颁发的SSL证书。我使用的是免费版&#xff0c;有效期为一年&#xff0c;过期后再重新申请。申请SSL证书购买后&#xff0c;可在搜索框输入证书关键字进入到控制台。点击证书申请&#xff0c;按照提示填写完相关信息…

mysql查询网址_bootstrap+flask+mysql实现网站查询

之前那篇文章是flaskredis的&#xff0c;如果用flaskmysql怎么实现呢&#xff1f;创建数据库&#xff1a;CREATE DATABASE web12306 DEFAULT CHARACTER SET utf8;创建表&#xff1a;CREATE TABLE web12306 (user_email varchar(100) NOT NULL DEFAULT ,user_pass varchar(100)…

网络连接异常、网站服务器失去响应_网站常见故障解决办法

网站在运行过程中&#xff0c;常常遇到各种服务器问题&#xff0c;虽然有服务器厂商的维护&#xff0c;但是往往耗时耗工小编对常见的服务器问题&#xff0c;进行了归纳整理&#xff0c;下面跟各位分享一下。常见故障分析一、恶意攻击在我平时管理网站时&#xff0c;可能会遭到…

搜索引擎提交软件_增加SEO超级外链须知的高权重网站目录提交方法

做SEO的朋友对开放式网站目录应该不陌生吧。网站目录就是按一定的分类方法把收录的网站进行分类归档。网站目录本身是不主动抓取网页的&#xff0c;一般只记录网站的名称&#xff0c;网址和有限的说明文字。和网址站、导航站、酷站网址大全等如同一辙。一般高质量的聚合目录网站…

c主线程如何等待子线程结束 linux_使用互斥量进行同步 - Linux C进程与多线程入门_Linux编程_Linux公社-Linux系统门户网站...

互斥简单地理解就是&#xff0c;一个线程进入工作区后&#xff0c;如果有其他线程想要进入工作区&#xff0c;它就会进入等待状态&#xff0c;要等待工作区内的线程结束后才可以进入。基本函数(1) pthread_mutex_init函数原型&#xff1a;int pthread_mutex_init ( pthread_mut…

xshell搭建宝塔没有远程命令密码框框弹出来_服务器安装宝塔控制面板+wordpress搭建个人网站...

准备工作服务器一台&#xff1a;服务器购买域名一个&#xff1a;随便买一个就行软件环境&#xff1a;宝塔面板第1步&#xff1a;SSH远程连接服务器通过ssh远程连接工具进行服务器主机连接&#xff08;Xshell、Putty等&#xff0c;百度下载&#xff09;需要更加详细的关于ssh远程…

php教育网站设计案例_酒店装修,精品酒店设计装修案例,酒店设计网站

酒店设计需要考虑&#xff1a;设计酒店的时候也要顺应市场潮流&#xff0c;不再单一的提供休息、洗漱、睡觉的空间&#xff0c;还要能提供社交、商务等功能&#xff0c;同顾客产生情况共鸣。这样能够引领生活方式的、能够互动&#xff0c;有仪式感的酒店&#xff0c;是很吸引人…

html5手机电商网页设计代码_Html5网站制作,干货!20个视觉体验和内容俱佳的优秀网页设计...

如何创建一个网页&#xff1f;“Html5网站制作”和“灵感干货&#xff01;20个视觉、体验和内容俱佳的优秀网页设计”有什么关系和内在关联&#xff1f;在图片方面&#xff0c;有三个具体方案&#xff1a;图片地图、Css Sprites、内联图片三种&#xff0c;最值得关注的是 Css S…