基于django的视频点播网站开发-step8-后台登录功能

从本讲起,我们会介绍后台管理系统的开发,后台管理,主要是对数据库中的数据进行增、删、改、查的操作,满足网站管理员对网站的管理与维护的需求。

其实,django自带的也有一个后台管理系统(/admin),但是自带的后台非常简陋,无论是界面,还是功能上,都无法满足用户的需求,因此,我们自己开发了一套后台管理系统。

demo地址

测试账号: admin123

密码: admin123

后台管理属于一个单独的模块,我们创建一个新的应用,命名为myadmin

python3 manage.py startapp myadmin

好,之后的功能都是基于myadmin来实现的。

因为前面我们已经创建了user模块,所以此处的登录功能是基于之前的user模块来实现的。

首先在myadmin/urls.py中添加登录和登出的路由

from django.urls import path
from . import views

app_name = 'myadmin'
urlpatterns = [
    path('login/', views.login, name='login'),
    path('logout/', views.logout, name='logout'),
]

我们来写login函数

def login(request):
    if request.method == 'POST':
        form = UserLoginForm(request=request, data=request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            user = authenticate(username=username, password=password)

            if user is not None and user.is_staff:
                auth_login(request, user)
                return redirect('myadmin:index')
            else:
                form.add_error('', '请输入管理员账号')
    else:
        form = UserLoginForm()
    return render(request, 'myadmin/login.html', {'form': form})

这里我们使用了user模型中的一个字段is_staff,用它来表示是否是管理员,所以通过if user is not None and user.is_staff来判断管理员,如果是管理员,则auth_login登录并redirect跳转到主页。

下面我们来实现logout函数

def logout(request):
    auth_logout(request)
    return redirect('myadmin:login')

登出后,直接跳转到login页面。

效果展示

posted @   Tom19971220  阅读(9)  评论(0编辑  收藏  举报  
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
个人网站
点击右上角即可分享
微信分享提示