基于django的视频点播网站开发-step8-后台登录功能
从本讲起,我们会介绍后台管理系统的开发,后台管理,主要是对数据库中的数据进行增、删、改、查的操作,满足网站管理员对网站的管理与维护的需求。
其实,django自带的也有一个后台管理系统(/admin),但是自带的后台非常简陋,无论是界面,还是功能上,都无法满足用户的需求,因此,我们自己开发了一套后台管理系统。
测试账号: 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页面。
效果展示
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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