首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在线网站搭建(九):初识后台管理

零基础使用Django2.0.1搭建在线教育网站(九):初识后台管理

写在前面

在前面的笔记中我们进行了需求分析和数据库的设计,本篇笔记主要介绍Django自带的用于后台管理的admin,并在此基础上介绍另一个插件xadmin的使用。

本篇笔记对应于第九篇代码,对应于github的位置是https://github.com/licheetools/eduline

django自带的admin介绍

先点击菜单下的Tools按钮 ,然后点击下拉的 Run manage.py Task按钮,在命令行中输入:再回车:

在浏览器地址栏中输入http://127.0.0.1:8000/admin出现:

恭喜你,你已经进入到Django admin的后台管理网页了。

你可能会问,为什么会有这个页面,我可是什么操作也没干啊(一脸无辜)。对的,你确实什么也不用干,因为Django已经帮你做好了。

打开eduline/settings.py文件,找到第34行代码:

看到没,admin它其实也是一个app,不过在我们新建项目时就已经创建好了,不用你去动手,是不是很人性化。

我们现在再来打开eduline/urls.py文件,找到第19行代码:

看到没,admin竟然已经自动在url中进行了配置(整个项目就它一个配置了url,可见重要性不一般),所以你前面访问http://127.0.0.1:8000/admin才会有响应。

我们回到后台页面:

有登录按钮,所以我们需要先注册一个账号,Django默认是不会给你创建账号的。

注册超级管理员

先点击菜单下的Tools按钮 ,然后点击下拉的 Run manage.py Task按钮,在命令行中输入

然后系统会提示你输入以下信息:Username,Email address,Password:

接下来进行数据库的生成和迁移操作(因为users应用中多了一个名为NewBee的超级管理员),我们只需要对users 这个应用进行相关操作:

登入admin后台

运行一下我们的项目,在浏览器地址栏输入:http://127.0.0.1:8000/admin,并在登录页面输入刚才注册的账号信息(默认登录方式是用户名 + 密码,后面会教你如何实现用户名或邮箱+密码登录的登录形式),点击登录,就进入后台了:

全是英文,我们去设置里配置一下:打开eduline/settings.py文件,找到第117行代码:

我们修改为如下:

刷新一下我们的后台网页:

恭喜你,admin被汉化成功了。接下来就是把我们前面定义的数据库字段都显示出来,首先把我们的UserProfile注册进来。

注册UserProfile

打开eduline/apps/users/admin.py文件,添加如下代码:

刷新一下我们的后台网页:

Users 是用户所在表的名称:

点击右侧的增加用户信息:

我们看到一下信息:

我们尝试再次新建一个用户:NewBai:

新建成功了,同时注意Django会自动帮我们把密码进行加密,而且不能反解,也就是说单向密码加密。

xadmin的安装

还记得前面的一篇笔记吗,我让你新建一个文件夹A,把下载的xadmin文件放在里面,不记得请查阅这篇笔记:零基础使用Django2.0.1打造在线教育网站(六):教育网站开发配置(更新一下,那个版本里面有太多的坑需要自己填,这里我就把已经填完坑的版本贴一下,大家在本篇笔记对应的Github上下载包,亲测有用)。

现在,我们新建一个名为extra_apps的Python package ,用来存放我们的第三方插件,并将前面下载的xadmin文件(解压之后)移入其中:

同时需要对路径进行配置:打开eduline/settings.py文件,找到里面的第16行代码,我们加入以下内容:

接下来是xadmin的安装:在确保前面的操作完成以后,我们打开eduline/settings.py文件,找到里面的第35行代码,在后面修改为如下:

然后打开eduline/urls.py文件,把urls中默认的admin修改为xadmin:

然后进行我们数据库的生成和迁移操作:和:

你会发现执行第一个命令就报错了,那是因为我们缺少一些库的支持,我们依次按照如下库:

使用的命令为:pip install package -i https://pypi.tuna.tsinghua.edu.cn/simple

之后会安装一大堆库,我们使用pip list命令查看一下:

为了便于你查看自己是否缺少某个库,我这里贴一下我的各个库的版本(你各个库的版本不能低于我的版本,否则就可能会出错):

接下来,我们重新进行数据库的生成和迁移操作:和:

,

看到没有,它也生成了几个数据表,我们打开Navicat,去数据库里看一下:

现在我们运行一下我们的项目,在浏览器地址中输入http://127.0.0.1/xadmin,然后看到:

恭喜你,xadmin的配置已经完成了,xadmin的页面是不是比admin的页面好看多了。

Xadmin使用Bootstrap3.0框架精心打造。基于Bootstrap3,Xadmin天生就支持在多种屏幕上无缝浏览,并完全支持Bootstrap主题模板,让您的管理后台也动感、多样起来。,这是它的的官方网站:

你可以去看一下它的示例和文档,可能需要翻墙,不过这对你以后的运用确实帮助很大的。

Xadmin的使用介绍

正如前面你所知道的,Xadmin是基于Django的admin来开发的,所以Xadmin也继承了许多admin的用法,下面就分别介绍一下它们的使用情况:

因为我们之前在admin里面已经注册了UserProfile,所以xadmin里面也就有了这个信息,那我们接下来就设置一下我们文件的格式,让系统默认去寻找我们xadmin的adminx.py文件,而不是去寻找原来admin的admin.py文件。

验证码功能的实现

我们打开eduline/apps/users这个文件夹,在里面新建一个名为的文件,我们准备开始验证码功能的实现,在其中添加如下代码:

现在我们重新运行一下我们的项目,在浏览器地址栏中输入:http://127.0.0.1:8000/xadmin回车,出现:

你可能会好奇这个是怎样实现的,其实这就是你数据库设计的字段啊:你打开users/models.py文件,看到第30行代码:

Meta信息就是用于后台显示的,其中verbose_name定义的是后台主页面显示字段,verbose_name_plural是verbose_name的复数形式,如果这两者不相等,那么verbose_name_plural就是在verbose_name后面加个s字母而已,所以我们尽量一样,便于管理和查看。

我们现在尝试添加一个邮箱验证码,点击右侧的增加邮箱验证码按钮,输入相关信息,可以看到添加成功了:

接下来,我们看一下右侧的显示列,点击一下:

里面可以选择显示的内容,我们现在想在刚才的页面同时显示这些全部信息,所以需要配置一下:我们打开users/adminx.py文件,在里面的管理器中设置list_display字段:

然后还可以配置过滤器,搜索框等,这里就不一一说明,直接贴上代码了:

之后刷新一下你的网页,成了这个样子:

细心的小伙伴们可能发现,这里竟然可以导出操作,是的,这样变得很方便了:

你可以根据自己的喜好来导出不同的文件格式,比如xml:

admin, xadmin和其他后台管理系统的区别

像PHP,JAVA等其他语言,它们是按照一个功能模块来进行一个功能设计的。而admin和 xadmin就不一样了,它们是对于每张表都可以进行增删改查的管理器,因此我们还可以在增删改查的基础上加上我们自己的后台逻辑,完成我们自定义的功能。因此,从某种程度可以说它是不依赖于具体业务的,不管什么系统后台都是由表组成。

既然这样,我们可以在其余的各个表中,都加上这些个功能。

打开users/adminx.py文件,我们来实现轮播图的注册,和前面验证码的操作类似,这里就不细说,直接贴上代码:

再次强调一下:这里面的字段都是你前面在数据库中定义的,请保持数据库字段定义的一致性,不要乱写,否则后面会出很大的BUG!

刷新一下你的页面,就变成了这个样子:

好了小伙伴们,你现在可以照葫芦画瓢了,尝试着把其余3个apps都注册到后台吧。那些,我们下一篇笔记再介绍,接下来教你一个自定义文件信息的技能。

自定义文件信息

打开Pycharm,点击一下主菜单的File,选择下拉的Settings,选择Editor,再选择Code Style,选择文件模板:

看到5的信息了么:

你可以自定义这些信息,当然还可以根据4的选择不同来添加不同的信息。然后点击apply,最后是ok,这样你每次创建新的py文件以后,这些信息就都会出现在文件的头部了。怎么样,新技能Get了没有?

至此,关于初识后台管理这一部分就先说这么多,下一篇笔记就完善其余3个apps的注册,还有xadmin的全局配置,打造一个属于自己的网站后台管理系统。

本篇笔记对应于第九篇代码,对应于github的位置是https://github.com/licheetools/eduline,另外xadmin的原始安装包我也上传了,大家可以前往下载,有空的话,可以给项目一个star,感谢你的赏阅。

啃饼思录

微信ID:kbthinking

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180803G1I1MW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券