w8ay表哥曾经用flask实现过一个在线渗透测试系统,小弟也有这个想法,python web里重量级的选手django算一个,于是就用django重写了下,(其实是因为不懂flask,,,,感觉这两个框架还是有不小的差别),因为百度高精度ip没法用了,只能退而求其次来个普通ip定位了,在这个过程中我会讲解下django的一些基础,大牛勿喷
一、django的基本结构
我们切换到相应的目录下,tree /f
【Python】
django是基于MVC的一个python框架,模型M,视图V和控制器C。
重要文件
setting.py
一些基本的设置及配置,比如自行开发的应用/允许的主机ip都可以在这设置
urls.py
在django里,控制着url与view函数的“映射”,对于django来说,用户访问一个url,总有一个视图函数来控制此url页面的展示。
举个栗子:
urls.py里我们这样写:
【Python】
当我们访问https://mysite/tool/ip/时,页面的展示取决于tool/views.py里的ip_api函数,函数里要是写上helloword,那么此url对应的页面就返回helloword,记访问网址就对应一个函数views.py
就是一些自定义的视图函数,控制页面返回效果
models.py
与数据库操作相关,存入或读取数据时用到
templates 文件夹
views.py 中的函数渲染templates中的Html模板,得到动态内容的网页,渲染方式一般用render()
二、开启django的简易小项目之旅
基础的概念大家可以去百度或者django菜鸟教程/自强学堂去看,咱们直接来做urls.py
【Python】
前面解释过了
views.py
【Python】
在这里我们定义了一个函数ip_api,它控制着访问/tool/ip时的页面返回,在这里我们当然需要它来展示一个html页面,有让我们输入ip的输入框,有展示地址,经纬度的表格,所以我们用一个render()来让它渲染ip.html
ip.html
【Python】
图方便,就自己写了个简单的html,很简陋,不过不会影响核心功能注意views.py里面还有一个模块叫ipapi,这个是我们自己编写的模块,用百度api来获取与地址相关的json数据并解析
【Python】
url中的ak是自己在百度开发者平台去申请的密钥,去申请一个写上吧
三、效果展示以及梳理思路
【Python】
整体的思路是:
1.核心代码编写,利用表单api获取位置信息相关的json数据(ipapi.py),将其当作模块供其他文件调用
2.指定url,并且确定对应的views.py中的函数
3.编写views.py中的函数,用render渲染一个所需要的html文件(ip.html)
4.当ip.html中的ip被提交后,调用ipapi.py进行解析,再返回数据给ip.html,结果展示
四、总结
很多有用的脚本都能做成模块,放在django中进行调用,后面有时间自己也会做一些东西,放在github上
本次实验的代码目前已放置百度云盘:https://pan.baidu.com/s/1qXUuyrq
稍后会上传到github,感谢w8ay表哥的思路。
来源:i春秋
作者:xiaoye
链接:https://bbs.ichunqiu.com/thread-22449-1-1.html
山西开源聚合科技有限公司
专注信息安全人才培养
搭建企业人才供需桥梁
咨询QQ群:495066536
标签: django客户端