数据接口的开发

数据接口的开发算是模型工程化的基本技能之一,我们建模、做算法不能仅仅停留在实验环境,做一些一次性的工作,我们要会去输出自己的模型和结果,一般模型工程化两种办法,一种是开发算法包给其他人调用;一种是利用数据接口提供服务,这种方法往往可以跟微信公众号的开发等结合起来,做出很多好玩的东西。

webservice开发的框架很多,这里介绍的django框架,django这个框架作为网站开发的框架来讲功能也算是非常强大的,要学的东西非常多,容易让人望而生畏,但这里我们如果仅仅需要提供歌数据接口服务的话,其实需要了解的点并不多。

开发用的ide选择eclipse,前面也说过,这个ide可以让你在界面上直接使用django框架的某些功能,省了命令行和记命令的麻烦,环境部署流程可自行百度学习,环境部署好之后,新建项目的时候可以直接选择django项目,前提是你装了这个包:

《数据接口的开发》
《数据接口的开发》

其中有一步是让你做数据库配置,默认是sqlite,一个本地的小型数据库,这个是配置给django自带的orm用的,如果不打算用django的这个功能,自己写代码连接数据库并进行操作也完全ok,有兴趣可自行百度学习。

《数据接口的开发》
《数据接口的开发》

刚创建完的文件树长成这个样子:

《数据接口的开发》

其中manage.py是启动web服务用的,比如python manage.py runserver 0.0.0.0:0, runserver后面跟的是ip和端口,要把项目部署成开机启动这个是必须知道的, 另外有个ALLOWED_HOSTS,在setting.py里面设置,否则就算你可以用这个ip,别人用这个ip也访问不了。

settings.py里面有各种配置,常见的就是ALLOWED_HOSTS,INSTALLED_APPS,DATABASES,STATIC_URL这些要调整,静态文件这里不讲,做网页才需要,只弄个数据接口的话不用搞这个。

urls.py,这个里面注意一下:

《数据接口的开发》
《数据接口的开发》

默认有个admin管理端页面,貌似功能也挺强大,有兴趣可以研究一下,其他的就是说用你的ip+端口+什么来访问你views里面的方法,像第二行的,就是直接用ip+端口输入在浏览器里面就访问的是views文件里面的main函数,views文件一般是属于某个app,这个django的views文件一般都是放在app文件夹里的,上图的app就叫xlservices,注意添加app之后要在setting里面的INSTALLED_APPS里加上。

好了,到了这个整个过程就很清晰了,建立django项目,配好url,和views里面的函数,就可以通过web访问你的views函数获取其返回结果,如果你做好了一个模型,对方以将特征数据以参数的形式传到你的接口,你处理过之后通过views里面的函数将结果返回,就实现了模型的输出,接下来看一下如何获取别人传过来的参数,以及如何输出结果,先随便建个app,就叫test:

《数据接口的开发》
《数据接口的开发》

整个文件树变成这样:

《数据接口的开发》

settings里面记得加上

《数据接口的开发》
《数据接口的开发》

urls里面这么改:

《数据接口的开发》
《数据接口的开发》

app文件夹里面的models和migrations文件夹不用管,这个是关于django自带orm的,不想用的不用管,想用的可以研究研究,views文件里面随便写个main函数:

《数据接口的开发》
《数据接口的开发》

现在启动web服务看看,默认ip是127.0.0.1,端口8000,想改的可以在eclipse的配置里面改,用命令行之行的话直接改runserver的参数

《数据接口的开发》
《数据接口的开发》
《数据接口的开发》
《数据接口的开发》

看上图,我们已经成功通过main函数将参数原封不动传回去了, 如果是特征数据,你这函数里面套一个模型的预测计算,返回结果,就可以对外输出你的模型结果了;其中get的参数是可以直接写在地址里面的, 如果是post的话,写代码用request方法传参数,获取post的参数在django里面会出一点小问题,不过百度一下应该就会解决,其他的跟 get一样。

另外,数据接口服务可以用在公众号的开发上,如果申请过公众号的人应该知道,可以在服务器配置那里填你这个接口,get方法核对口令,post方法和微信公众号做数据交互,大家可以参考微信公众号的开发文档。

    原文作者:bnuxuliang
    原文地址: https://zhuanlan.zhihu.com/p/30549371
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞