首页 文章 精选 留言 我的

精选列表

搜索[Swift开发],共10000篇文章
优秀的个人博客,低调大师

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

用户管理功能,包含用户添加、列表展示、编辑、删除四大功能。下面我们一一揭晓。 用户添加 我们先实现用户添加功能,我们现在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 = User template_name = 'myadmin/user_list.html' context_object_name = 'user_list' paginate_by = 10 q = '' 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_list context['q'] = self.q return context def 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 = User form_class = UserEditForm template_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() 删除之。

优秀的个人博客,低调大师

基于django的视频点播网站开发-step10-后台评论管理功能

本讲中,我们会讲到评论管理功能,数据库中的每一条是来自用户的评价,因此后台中的评论管理只有评论列表和评论删除功能,没有增加评论和编辑评论。 照例我们先添加评论管理的相关路由 path('comment_list/', views.CommentListView.as_view(), name='comment_list'), path('comment_delete/', views.comment_delete, name='comment_delete'), 首先是评论列表的展示,我们通过CommentListView视图类来实现,该类依然是继承ListView来实现的。代码如下 class CommentListView(AdminUserRequiredMixin, generic.ListView): model = Comment template_name = 'myadmin/comment_list.html' context_object_name = 'comment_list' paginate_by = 10 q = '' def get_context_data(self, *, object_list=None, **kwargs): context = super(CommentListView, 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_list context['q'] = self.q return context def get_queryset(self): self.q = self.request.GET.get("q", "") return Comment.objects.filter(content__contains=self.q).order_by('-timestamp') 通过继承ListView来实现评论列表的展示,通过get_context_data()来实现分页功能,通过get_queryset()来实现搜索功能。 效果如下 下面我们继续实现删除功能,该功能比较简单,只需要通过ajax将video_id传给删除接口即可,ajax的代码位于static/js/myadmin/comment_list.js,删除评论的接口是api_comment_delete,最终会调用到comment_delete,代码如下 @ajax_required @require_http_methods(["POST"]) def comment_delete(request): comment_id = request.POST['comment_id'] instance = Comment.objects.get(id=comment_id) instance.delete() return JsonResponse({"code": 0, "msg": "success"}) 逻辑还算清晰,即先拿到评论的id,然后获取到该条评论,最后instance.delete()删除之。

优秀的个人博客,低调大师

年薪40万Java开发在阿里巴巴是什么水平?需要熟悉哪些技术?

好多人对阿里巴巴的薪资体系结构及级别设置不太清楚,想去面试也不知道面试什么级别的岗位,那么,年薪 40 万在阿里内部又是什么水平呢? 先来看看阿里巴巴的级别设置: 再来看看阿里巴巴的对应薪资年薪: 40W 年薪 P6 级别就能拿到,阿里巴巴薪资结构一般是 16 薪,所以就是税前2.5w,年底的奖金 0-6 个月薪资,90%人可拿到 3 个月,关于股票,这得要工作满 2 年才能拿,第一次拿50%,4年能全部拿完。 在阿里达到P6的要求是什么呢,阿里内部有个简单的概述,那就是可以独立完成部门内部的项目,而面试过程中,也会有相应的考察。 1.你的代码能力 2.对常用中间件的理解 3.架构、业务落地能力 4.沟通协作能力 总的来说呢,到这个阶段,代码真的只是你技能桶中的一个最长的,或者最长的之一,而其他软技能,会显得越来越重要。 年薪40w真的不算啥,具体几年可以达到,因人而异,不过大多数身边的人很多3-5年是这个水平。 希望大家提前准备好再去阿里面试,不要浪费机会。 下面再送一波架构师视频教程,免费发放,大家好好看一下,而且还会不定期更新,转发+关注,然后私信回复我“777“就可以免费获取喔~ 欢迎工作一到五年的Java工程师朋友们加入Java填坑之路:860113481 群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册