Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
在之前的项目中,都在用 django 的后台集成工具 xadmin 和 admin,这两样后台管理工具很强大,基本上能满足不同的开发需求。本次采用自建 cms 来实现后台的管理。
首先,本次项目有6大应用,用户、资讯、课程、订单、富文本、cms管理。
其次,需要知道如何实现后台数据的增删改查。对后台的管理,需要给不同用户配置后台管理权限。实现后台管理权限的配置,可以通过 django 自带的用户模型中的 is_staff 属性,来给对应的用户授予后台操作的权限。
① 后台权限
django的用户可分为两类,一是可认证的用户,也就是在django.contrib.auth.models.User中注册了的;另一种是匿名用户django.contrib.auth.models.AnonymousUser,每个访问的未登录的用户都是该类的一个实例,而匿名用户是无法认证的,即 is_authenticated 方法永远返回 False,或者is_anonymous返回True,我们可以在代码逻辑中实现对匿名用户进行判断,然后拒绝其访问(403),或者重定向到登录页面等。
只允许 staff 身份的用户访问某个视图,django同样提供了一个便捷的装饰器来实现这个功能:
from django.contrib.admin.views.decorators import staff_member_required
后台管理视图
@staff_member_required(login_url='/')
def index(request):
return render(request, 'cms/index.html')