django开发出的网站如何包含安装程序

就像php时代的discuz论坛,上传了网站程序后,通过浏览器访问特定的url会启动论坛的安装程序,完成数据库和论坛配置的初始化。安装完成后再把那个特定的url的文件删除就可以保证黑客不会访问到了。

如果我这个网站是django做的,有没有类似的办法,通过浏览器访问特定的url会启动论坛的安装程序,完成数据库和论坛配置的初始化。

比如说我的网站带了RBAC权限控制,但是通常意义上需要控制访问权限的资源是指网站的接口,也就是特定的url。django自带的auth模块对应的权限却是数据库中某个表的CURD访问权限,这其实是不符合需求的。所以如果我自行开发model,那么最后在migrate的时候其实只是初始化那张表,不会在表中插入任何记录,也不会设定基本的参数,比如权限控制中url的清单,以及最高管理员的用户名和密码之类,也就是说migrate那张表其实是空的。可是如果没有最高管理员,后面的各种设置就很麻烦。我总不能把网站程序上传migrate之后,再手动登录到数据库,再一条条执行SQL吧。就算我自己可以,给别人用就会非常麻烦了。

php是按照文件夹路径来放置安装程序,所以只要安装过后删掉即可。可是django不是,django是通过路由匹配来访问对应的函数的,尤其是涉及到RBAC权限控制,一般都是通过中间件,而如果我在中间件里面给了一个可以用于安装的url允许在没有用户登录时访问,这就会带来极大的安全问题;而如果我不给,那么上传的网站就无法初始化最高管理员。

有没有什么解决办法呢?

评论 1