|
一、概述记录时间[2024-4-2]本文讲述的是API接口的简单使用:在Python中使用Flask封装网络接口,可以通过调用API接口,实现请求参数/文件的上传,以及自定义文本/JSON格式/图片等的返回。1.HTTP请求HTTP请求是指从客户端到服务器端的请求消息,包括请求行、头部和体,流程为客户端发送请求,服务器处理并返回响应。常见的HTTP请求有:序号方法描述1GET用于请求服务器上的资源,不会对服务器资源产生任何影响。2POST向服务器发送数据,例如登录、上传文件等,会让服务器进行处理,并对服务器资源产生影响。3PUT从客户端向服务器传送的数据取代指定的文档的内容。4DELETE请求服务器删除指定的页面。2.APIAPI(ApplicationProgrammingInterface),即”应用程序编程接口“,是一组预先定义的函数,允许应用程序和开发人员基于软件或硬件访问一组例程,而无需访问源代码或理解内部工作机制的细节。3.FlaskFlask是一个使用Python编写的轻量级Web应用框架,较其他同类型框架更为灵活、轻便、安全且容易上手。Flask的基本模式为:在程序里将一个视图函数分配给一个URL,每当用户访问这个URL时,系统就会执行给该URL分配好的视图函数,获取函数的返回值并将其显示到浏览器上。但,相比于一些大型框架如Django,Flask的功能相对较少,需要依赖扩展库来实现一些功能。缺乏一些高级功能,不适合大型应用。这里附带上Flask官方文档,里面记载了详细的使用方法,如果觉得看文档比较麻烦的话,可以直接看文章,需要用到的部分已经在文章中进行了摘录。二、封装简单的网络接口1.使用PyCharm创建Python项目如图所示,打开PyCharm,点击左上角的File,然后NewProject,新建一个Python项目。选择项目安装的位置,pythonProject是我们的Project放置的位置,需要是一个空文件夹。选择解释器PythonInterpreter。文中选择的是先前安装的conda中附带的,你也可以选择新建(选上面的Newenvironment即可)。点击Create,完成创建。创建过程需要下载一些配置,耐心等待下即可。2.新建测试文件点击pythonProject,右键新建Python文件,命名为flaskTest3.构建Flask实例在flaskTest.py中编写一个简单的测试实例,然后右键运行RunfromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello_world():#putapplication'scodeherereturn'HelloWorld!'if__name__=='__main__':app.run()123456789101112查看反馈,可以看出项目运行在主机的5000端口#可以看出项目运行在主机的5000端口*Runningonhttp://127.0.0.1:5000PressCTRL+Ctoquit*ServingFlaskapp'flaskTest'*Debugmodeff123456打开浏览器查看一下吧。访问127.0.0.1:5000这个URL时,就会得到程序返回的HelloWorld!4.实例详解接下来我们对这个Flask实例进行详解:#Flask是使用Flask框架需要导入的依赖fromflaskimportFlask#app是Flask构建的实例app=Flask(__name__)#@app.route('/')#这里定义了HTTP请求的方式,如GET/POST...默认为GET请求#我们也可以自定义请求方式,如@app.post('/')#('/')中/代表请求的URL路径,此时浏览器中访问路径为127.0.0.1:5000#('/hello')此时浏览器中访问路径为127.0.0.1:5000/hello@app.route('/')defhello_world():#putapplication'scodeherereturn'HelloWorld!'#def为python中定义的函数#hello_world()是函数名#return后面的即为HTTP请求返回的结果if__name__=='__main__':app.run()#app.run()运行这个实例#默认本机访问,默认5000端口#我们可以进行自定义#如app.run(host='0.0.0.0',port=5001)#'0.0.0.0'表示允许全部主机访问,port=5001指定端口为500112345678910111213141516171819202122232425262728293031三、测试方式在进行其他复杂的网络接口使用前,我们先对HTTP请求的几种测试方式进行简单介绍,方便后续使用。1.浏览器直接方式浏览器直接方式是最方便的,只要输入网址,也就是请求的URL即可。但是,它只能发送GET请求。回到我们上面的测试界面,在浏览器中按下F12键(部分电脑可能是FN+F12)调出开发工具,这对于网页开发和调试非常有用。2.PostmanPostman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果。Postman能够发送任何类型的HTTP请求(GET,HEAD,POST,PUT…),且可以附带各种类型的参数和请求头。感兴趣的朋友可以点击这里,进行下载安装。3.HTML我们也可以写一个简单的HTML文件来发送HTTP请求。具体的方式是新建一个test.html文件,然后以记事本方式打开,然后进行编写。例如: 1234567891011121314151617181920然后保存文件,双击在浏览器中运行,点击测试即可。四、其他复杂的网络接口1.请求参数传递创建方法上文创建的Flask实例中,我们返回的是简单的文本,接下来我们实现下参数传递。在发送HTTP请求时带上参数,并将自定义的参数返回给客户端。#在flaskTest.py中编写一个新的函数@app.route('/text/')deftext(id):return"hello%s"%id12345浏览器中测试我们首先在浏览器中测试按下F12键(部分电脑可能是FN+F12)调出开发工具输入网址,输入的格式:ip地址:端口号/请求路径/待传参数http://127.0.0.1:5000/text/test12按下回车,我们就能得到服务端返回的结果,其中,test就是我们刚刚传入的参数。hellotest1在开发工具中选择网络,点击test进行查看(没有就刷新一下),可以看到这个请求的详细信息,如请求网址/方法/状态等等。Postman测试打开刚刚下载的Postman,选择GET方法,输入URL和参数,然后点击Send,就能得到返回结果。2.JSON格式返回编写/运行Flask实例接下来我们实现JSON格式数据返回的接口。创建flaskJSON.py文件,编写Flask实例:fromflaskimportFlask,jsonifyapp=Flask(__name__)#json数据返回接口@app.route('/json')defreturn_json():data=[{'msg':'ThisisajsonTEST'},{'msg1':'ThisisajsonTEST111'}]returnjsonify(data)if__name__=='__main__':app.run()1234567891011121314运行,然后进行请求测试(浏览器/Postman均可):http://127.0.0.1:5000/json1在Postman中查看结果在浏览器中查看结果3.图片形式返回编写/运行Flask实例接下来我们实现图片形式返回的接口。创建flaskImage.py文件,编写Flask实例:fromflaskimportFlask,send_fileapp=Flask(__name__)#图片返回接口@app.route('/image')defreturn_image():image_path='yfx.jpg'returnsend_file(image_path,mimetype='image/jpeg')if__name__=='__main__':app.run()12345678910111213进行测试运行,然后进行请求测试(浏览器/Postman均可):http://127.0.0.1:5000/image1查看结果(图片来自网络,仅用于测试查看):五、总结本文描述了在Python中使用Flask框架封装API接口的方法。通过实践操作,分别实现了简单文本返回接口、参数传递、JSON格式数据返回接口,以及图片返回接口。此外,文章还简单介绍了浏览器开发工具的使用,测试工具Postman的使用。文中对操作过程的描述详细具体,便于初学者进行使用。关于文件上传的接口编写将在下一篇中实现。一些参考资料Flask官方文档:https://dormousehole.readthedocs.io/en/latest/quickstart.htmlPostman官网:https://www.postman.com/
|
|