本人新书《玩转Python网络爬虫》,可在天猫、京东等商城搜索查阅或通过右侧图书链接购买,项目深入浅出,适合爬虫初学者或者是已经有一些网络爬虫编写经验,但希望更加全面、深入理解Python爬虫的开发人员。
Django版本:1.11
操作系统:Windows
Python:3.5
欢迎加入学习交流QQ群:657341423
Django站点管理(admin)
项目架构
构建Django站点
站点管理讲得通俗一点,就是我们可以通过web方式,直接管理整个网站的数据,主要体现在管理数据库数据。
毕竟一个网站的管理人员不会直接通过数据库去管理的,而且管理人员基本上都不会是开发人员。所以这个对于非开发人员来说,是更好维护这个网站运行和管理。
基本上,Django已有一套admin的站点管理工具。我们直接配置一下即可使用。
设置:admin的url地址。
设置setting.py文件
其中’django.middleware.locale.LocaleMiddleware’是自行加入的,这个是将站点显示中文。必需在’django.contrib.sessions.middleware.SessionMiddleware’后面。
其余的基本上在新建项目的时候已有的。
再看一下之前app里面的models文件,这里为了下面的更好体现,比上一章的models做了稍微的修改。
查看一下数据库,这里我将上一章的数据表清空了,这里重新新建过
这里包含了设置字段可选这个功能,就是models里面的blank=True和null = True,当你添加blank=True以后,标签不再是粗体了,这时候说明这字段可以为空的。
1
2
3 1如果你想允许一个日期型(DateField、TimeField、DateTimeField)或数字型(IntegerField、DecimalField、FloatField)字段为空,你需要使用null=True 和 blank=True。
2其余的直接用blank=True即可
3
新建数据表
运行服务器,打开http://127.0.0.1:8000/admin/
发现需要登录才能进入管理。那么我们需要创建帐号密码。新打开一个cmd,输入
可以看到,输入用户名,邮箱,密码(在输入密码的时候,是看不到任何显示的),回车完成。
然后在网页上输入刚才的帐号密码,登录
我们发现,这里只有一个‘认证和授权’的管理,这个是创建这个站点其他管理人员的帐号和权限。
这样就构建了一个站点管理的
在站点中加入其他模型。
我们在app的polls中admin.py中输入
查看web
发觉这是一个最简单的管理界面。当我点击‘增加 PUBLISHER’的时候,输入信息后保存
看到这里显示2条数据,我们直接查看数据库
发现可以通过站点管理直接对数据进行管理和维护。
但很多时候,我们还需要一些自定义的功能进行维护。比如web中只是显示了”测试-adfadf”,”luna-佛山”,如果我需要更多数据,而且也需要排序呢?
实现方式:
我们可以在app的polls中admin.py新建一个子类,继承admin.ModelAdmin
查看web
总结:
上图所示,一共有三组,分别是DJAPPTEST,POLLS,认证和授权,分别代表三个app。其中认证和授权是django自带的。其余是用户自定义的。每个app里面的Autors,Publishers等分别代表各自models.py的class,也就是数据库里面的表。
每个表里面的操作(增删改查)等于数据库的操作以及里面的显示方式在各自app里面admin.py里自定义class进行,每个class对应models.py的class。
最后一点,切勿忘记整个项目里面的urls.py和settings.py文件设置。