大家会不会有一种,不知道要怎么下手的感觉,其实很简单。我们可以看下目前的结构,我们在下面写一个全局域名。其实整体设计和全局请求头基本一致,只是当中的标签id 数据字段 函数名需要更改。前端如此,urls.py,和views.py还有models.py基本都是复制粘贴全局请求头的,这样不就简单了么?
不要怀疑这种借鉴抄袭copy的方法,这其实是最正常和常见的方法,谁还能天天写什么都需要去创新,去创造,去设计?那不累死了。就算博主我也是大部分都是借鉴自己之前的项目内方法,写的时候稍微加上一些灵光一闪的设计变化而已。毕竟我们最高级的程序员 往往会使用最简单的code方式:
ctrl+c / v
我们先去models.py中搞定这个全局域名的数据层设计:
然后执行那两句命令:
然后去admin.py:
最后去后台 手动创建俩条数据:
到此。我们的数据层设计完成,demo也弄了两条。怎么样,这个路线记住了么?
然后是后台views.py中设置:
如上图,我们不管三七二十一,反正看到全局请求头加上了,那我们给全局host也加上,准没错。
然后是发现全局请求头有自己的个保存函数,我们直接无脑复制了。
如上图,下面那个就是我们准备要动手改成全局域名host的函数:
改成如下即可:
# 保存项目公共域名 def save_project_host(request): project_id = request.GET['project_id'] req_names = request.GET['req_names'] req_hosts = request.GET['req_hosts'] req_ids = request.GET['req_ids'] names = req_names.split(',') hosts = req_hosts.split(',') ids = req_ids.split(',') for i in range(len(ids)): if names[i] != '': if ids[i] == 'new': DB_project_host.objects.create(project_id=project_id,name=names[i],host=hosts[i]) else: DB_project_host.objects.filter(id=ids[i]).update(name=names[i],host=hosts[i]) else: try: DB_project_host.objects.filter(id=ids[i]).delete() except: pass return HttpResponse('')
其实我只是把其中的key和value俩个字段 换成了 host字段而已。
然后我们去改urls.py,怎么样是不是感觉,整个开发过程和之前逆转过来了?其实根本没有必须的顺序,自己怎么舒服怎么来。
本节到此就结束了,下节我们ctrl+v html层的全局域名