七、python restful框架(python接口开发)
- 格式:pdf
- 大小:619.82 KB
- 文档页数:6
Python 的知识结构框架可以根据不同的学习目标和应用领域而有所不同,但以下是一个通用的Python 知识结构框架,以帮助您了解Python 编程的主要组成部分和学习路径:基础概念:Python 是什么?Python 的历史和发展。
安装Python 和设置开发环境。
Python 的基本语法和语句。
变量、数据类型和类型转换。
控制流程(条件语句和循环)。
数据结构:列表(List)、元组(Tuple)和集合(Set)。
字典(Dictionary)和哈希表。
字符串处理和操作。
函数和模块:函数的定义和调用。
参数传递和返回值。
模块的导入和使用。
标准库和常用模块(例如,os、sys、math 等)。
面向对象编程:类和对象的概念。
类的定义、属性和方法。
继承和多态。
文件操作和输入/输出:打开、读取和写入文件。
异常处理和文件关闭。
标准输入和输出。
错误处理和调试:异常处理机制。
调试工具和技巧。
高级主题:列表推导式、生成器表达式。
装饰器和上下文管理器。
多线程和多进程编程。
GUI 编程、网络编程、数据库连接等。
数据科学和机器学习(可选):NumPy、Pandas、Matplotlib 等库的使用。
机器学习框架如Scikit-Learn 和TensorFlow。
Web 开发(可选):Web 框架(如Flask、Django)。
RESTful API 开发。
数据库连接和操作。
项目开发和实践:实际项目的开发和实施。
版本控制(如Git)的使用。
单元测试和文档编写。
请注意,这只是一个通用的Python 学习路径示例。
具体的学习路径可以根据您的兴趣、目标和应用领域进行调整和扩展。
Python 是一门功能强大且多用途的编程语言,可用于Web 开发、数据分析、人工智能、科学计算等各种领域。
根据您的需求选择合适的学习方向和深度。
Python中的RESTfulAPIPython中的RESTful API简介:RESTful API是一种设计风格,用于构建可伸缩的、可扩展的网络应用程序接口。
在Python中,我们可以使用各种工具和框架来创建和使用RESTful API。
本文将介绍RESTful API的基本概念、Python中常用的RESTful API框架以及实际应用案例。
一、RESTful API的基本概念REST(Representational State Transfer)是一种基于HTTP协议的架构风格,用于构建分布式的超媒体系统。
RESTful API是符合REST原则的API设计,具有以下特点:1.无状态性:每一次请求都可以独立完成,服务器不需要保存客户端的状态信息。
2.资源导向:将系统的功能抽象为资源,使用URI(统一资源标识符)标识资源。
3.统一接口:使用通用的HTTP方法(GET、POST、PUT、DELETE等)对资源进行操作。
4.支持多种数据格式:RESTful API可以使用多种数据格式(如JSON、XML等)进行数据交换。
二、Python中常用的RESTful API框架在Python中,有多个RESTful API框架可供选择,下面介绍其中几个常用的框架:1.Flask-RESTful:Flask是一个轻量级的Web框架,而Flask-RESTful则是在Flask的基础上扩展出来的RESTful API框架。
它提供了简单易用的API构建工具,并支持路由、请求参数解析、错误处理等功能。
2.Django REST framework:Django是一个强大的Web框架,而Django REST framework则是在Django的基础上构建的RESTful API框架。
它提供了丰富的功能,包括序列化、身份验证、权限控制等,并支持多种数据存储后端。
3.Tornado:Tornado是一个异步的Web框架,它具有高性能和可伸缩性的特点。
restful接口方法RESTful 接口是由Roy Fielding定义的一种使用HTTP协议来使Web服务可以使用网络技术访问的软件架构风格。
它定义了一下七种HTTP方法:GET,POST,PUT,DELETE,OPTIONS,HEAD,CONNECT五种。
1、GET:GET 方法用于在服务器上读取资源,返回一个对应资源的详细信息。
GET 方法可以使用安全的HTTP连接发出,但是不能用来传输数据,即不能用作新增、更新、删除等操作,但可以使用HTTP查询方式传递变量。
它是使用最广泛的方法之一。
2、POST:POST 方法用于向服务器提交数据,以创建或更新资源,并返回相应结果。
这是HTTP协议中最常用的方法。
通过POST方法提交的信息会存储在服务器端,并返回由服务器发出的结果响应信息。
3、PUT:PUT 方法用于把客户端的资源应用到服务器。
通过PUT方法发送的客户端数据将覆盖服务器上指定的资源,以达到更新指定资源的目的。
4、DELETE:DELETE 方法是用来删除指定资源。
它是一种特定的HTTP动词,用于从服务器上安全地删除资源。
5、OPTIONS:OPTIONS 方法用于从服务器端获取指定资源可以支持的动词和头信息。
它是一种特定的HTTP动词,用于确认客户端可以在当前资源(URI)上使用何种HTTP方法的信息。
6、HEAD:HEAD 方法用于从服务器上获取指定资源的消息首部,而不获取消息主体部分。
在客户端上实现条件性请求时,HEAD 方法是更高效率的,因为它不会载入资源,而只是获取消息首部信息。
7、CONNECT:CONNECT 方法是一种特定的HTTP动词,用于将客户端通过HTTP代理服务器访问一个外部的资源,例如Web服务器或一个FTP服务器。
CONNECT 方法常用于将HTTPS作为HTTP代理服务器,用于HTTP安全传输。
以上就是 Rrestful 接口中常用的七个HTTP方法,它们分别有着不同的功能,应用于不同的场景中来获取不同类型的资源,这是 web开发中极其重要的一项技术。
rest技术框架REST(Representational State Transfer)是一种基于HTTP协议的软件架构风格,用于构建可伸缩的网络服务。
它的设计目标是简化分布式系统的开发和集成,使得系统更加灵活、可扩展和可维护。
在这篇文章中,我将介绍几种常见的REST技术框架,并分析它们的特点和适用场景。
1. Spring Boot:Spring Boot是一个用于构建独立的、生产级别的Java应用程序的快速开发框架。
它内置了丰富的REST支持,可以通过简单的注解和配置来定义RESTful API。
Spring Boot提供了自动配置和约定大于配置的原则,使得开发者可以快速搭建REST应用,并集成其他常用的组件,如Spring MVC、Spring Data等。
2. Flask:Flask是一个轻量级的Python Web框架,它提供了简单而灵活的方式来构建RESTful API。
与Spring Boot类似,Flask使用注解和路由规则来定义API端点,同时还支持HTTP方法、请求参数处理、异常处理等功能。
Flask具有简单易用的特点,适合快速构建小型的REST服务或原型开发。
3. Django:Django是一个功能强大的Python Web框架,也可以用于构建RESTful API。
它提供了许多开箱即用的功能,如认证、授权、数据库集成等。
Django使用基于类的视图(Class-based views)来处理HTTP请求,并提供了REST框架(Django REST framework)作为扩展,使得构建RESTful API更加方便和可扩展。
4. Express.js:Express.js是一个简洁而灵活的Node.js Web框架,也可以用于构建RESTful API。
它采用了中间件(Middleware)模型,允许开发者通过插入处理函数的方式来处理HTTP请求。
Express.js提供了路由、参数解析、错误处理等常用功能,同时也可以通过插件来支持更复杂的要求。
38个常⽤Python库:数值计算、可视化、机器学习等8⼤领域都有了⼀、数值计算数值计算是数据挖掘、机器学习的基础。
Python提供多种强⼤的扩展库⽤于数值计算,常⽤的数值计算库如下所⽰。
1. NumPy⽀持多维数组与矩阵运算,也针对数组运算提供⼤量的数学函数库。
通常与SciPy和Matplotlib⼀起使⽤,⽀持⽐Python更多种类的数值类型,其中定义的最重要的对象是称为ndarray的n维数组类型,⽤于描述相同类型的元素集合,可以使⽤基于0的索引访问集合中元素。
2. SciPy在NumPy库的基础上增加了众多的数学、科学及⼯程计算中常⽤的库函数,如线性代数、常微分⽅程数值求解、信号处理、图像处理、稀疏矩阵等,可进⾏插值处理、信号滤波,以及使⽤C语⾔加速计算。
3. Pandas基于NumPy的⼀种⼯具,为解决数据分析任务⽽⽣。
纳⼊⼤量库和⼀些标准的数据模型,提供⾼效地操作⼤型数据集所需的⼯具及⼤量的能快速便捷处理数据的函数和⽅法,为时间序列分析提供很好的⽀持,提供多种数据结构,如Series、Time-Series、DataFrame和Panel。
⼆、数据可视化数据可视化是展⽰数据、理解数据的有效⼿段,常⽤的Python数据可视化库如下所⽰。
4. Matplotlib第⼀个Python可视化库,有许多别的程序库都是建⽴在其基础上或者直接调⽤该库,可以很⽅便地得到数据的⼤致信息,功能⾮常强⼤,但也⾮常复杂。
5. Seaborn利⽤了Matplotlib,⽤简洁的代码来制作好看的图表。
与Matplotlib最⼤的区别为默认绘图风格和⾊彩搭配都具有现代美感。
6. ggplot基于R的⼀个作图库ggplot2,同时利⽤了源于《图像语法》(The Grammar of Graphics)中的概念,允许叠加不同的图层来完成⼀幅图,并不适⽤于制作⾮常个性化的图像,为操作的简洁度⽽牺牲了图像的复杂度。
7. Bokeh跟ggplot⼀样,Bokeh也基于《图形语法》的概念。
Python中Flask-RESTful编写API接⼝(⼩⽩⼊门)1.API接⼝:hello world 案例from flask import Flaskfrom flask_restful import Api, Resourceapp = Flask(__name__)api = Api(app)class HelloWorld(Resource):def get(self):return {'hello': 'world'}api.add_resource(HelloWorld, '/')if __name__ == '__main__':app.run(debug=True)2.API接⼝:Resource充当路由的⾓⾊官⽅⽂档的说法:Flask-RESTful 提供的最主要的基础就是资源(resources)。
资源(Resources)是构建在 Flask 可拔插视图之上,只要在你的资源(resource)上定义⽅法就能够容易地访问多个 HTTP ⽅法.其实就是想表达,在资源路由上(resources)定义多个⽅法(get,post,put等),就可以实现多种效果from flask import Flask, requestfrom flask_restful import Api, Resourceapp = Flask(__name__)api = Api(app)todos = {}class TodoSimple(Resource):def get(self, todo_id):return {todo_id: todos[todo_id]}def put(self, todo_id):todos[todo_id] = request.form['data']return {todo_id: todos[todo_id]}api.add_resource(TodoSimple, '/<string:todo_id>')if __name__ == '__main__':app.run(debug=True)解释:(1)TodoSimple类定义了2种⽅法,最终地址/string:todo_id'下⾯,就可以实现2种请求⽅法(2)add_resource⽅法中第⼀个参数:视图函数名;第⼆个参数:路由的具体地址,以及string:todo_id代表传递的是⼀个字符串,且是必要参数。
python怎么实现接口_Python接口开发实现步骤详解Python是一种非常灵活的编程语言,可以通过多种方式实现接口。
下面是一个使用Python实现接口的详细步骤。
1.确定接口的功能和要求:在开始编写代码之前,首先需要确定接口的功能和要求。
这包括接口应该提供哪些方法、参数以及预期的返回值等。
2. 定义接口类:在Python中,我们可以使用抽象基类(Abstract Base Class)来定义接口。
抽象基类是一个包含抽象方法(只有方法签名,没有具体实现)的类。
我们可以通过继承这个类来实现接口。
```pythonfrom abc import ABC, abstractmethodclass MyInterface(ABC):def method1(self, param1: int) -> str:passdef method2(self, param2: str) -> int:pass```在上面的代码中,我们定义了一个名为MyInterface的接口类,其中包含了两个抽象方法`method1`和`method2`。
3.实现接口:接下来,我们需要创建一个具体的类来实现接口。
这个类需要继承自接口类,并实现接口中的所有抽象方法。
```pythonclass MyClass(MyInterface):def method1(self, param1: int) -> str:# 实现method1的具体逻辑return str(param1)def method2(self, param2: str) -> int:# 实现method2的具体逻辑return len(param2)```在上面的代码中,我们创建了一个名为MyClass的类,它继承自MyInterface接口类,并实现了接口中的抽象方法`method1`和`method2`。
4.使用接口对象:现在我们可以创建一个接口对象,并使用它的方法来调用实现类中的具体逻辑。
Python微服务微服务架构是一种将复杂的系统拆分成小型、自治的服务的软件架构模式。
它通过解耦服务之间的依赖关系,提高系统的可伸缩性、灵活性和可维护性。
Python是一种功能强大且流行的编程语言,具有丰富的生态系统,使其成为构建微服务的理想选择。
本文将介绍Python微服务的定义、优点和使用场景,并提供一些常用的Python微服务框架供读者参考。
一、什么是Python微服务是使用Python编写的小型、自治的服务,每个服务都可以独立开发、部署和扩展。
每个微服务负责特定的业务功能,通过API接口进行通信。
微服务架构可以将整个系统划分成多个松耦合的服务,每个服务可以独立部署并独立伸缩,从而提高系统的可靠性和可维护性。
二、Python微服务的优点1. 灵活性:Python是一种动态语言,具有灵活的语法和丰富的库。
开发人员可以快速构建、测试和部署Python微服务,迅速响应业务需求变化。
2. 生态系统:Python拥有庞大而活跃的社区。
有许多成熟的Python微服务框架和库可供选择,包括Flask、Django和Tornado等。
3. 可伸缩性:微服务架构使得每个服务都可以独立伸缩,根据实际需求增加或减少服务实例。
Python的异步特性以及一些高性能的框架(如Tornado)可以支持处理大量并发请求。
4. 可维护性:每个微服务独立开发和部署,使得系统的各个部分可以独立测试和升级。
这样一来,团队可以更容易地维护和扩展系统。
三、Python微服务的使用场景1. 大型系统拆分:当一个大型系统逐渐变得庞大且难以维护时,可以考虑使用微服务架构将其拆分成小型的、自治的服务。
Python的灵活性和丰富的库使得开发人员可以快速构建和部署微服务。
2. 垂直拆分:将系统按照业务领域进行拆分,每个微服务负责特定的领域。
例如,一个电子商务系统可以拆分成用户管理服务、订单服务和支付服务等。
3. 弹性伸缩:当系统需要处理大量并发请求时,可以使用Python微服务来实现弹性伸缩。
PythonRESTful接⼝开发02什么是RESTfulRESTful是⼀种设计思想,⼀种风格。
RESTful主要包括资源和对资源的操作。
资源:对实体的抽象,图书、⾳乐、电影、学⽣等都属于资源。
对资源的操作:========== ===================== ==================================HTTP ⽅法⾏为⽰例========== ===================== ==================================GET 获取资源的信息 /api/studentsGET 获取某个特定资源的信息 /api/students/123POST 创建新资源 /api/studentsPUT 更新资源 /api/students/123DELETE 删除资源 /api/students/123========== ====================== ==================================使⽤Django开发⼀个简单的RESTful风格接⼝要实现的接⼝:========== ===================== ================================================请求⽅法⾏为接⼝地址========== ===================== ================================================GET 获取资源的信息 http://127.0.0.1:8000/todo/api/v1.0/tasksGET 获取某个特定资源的信息 http://127.0.0.1:8000/todo/api/v1.0/tasks/123POST 创建新资源 http://127.0.0.1:8000/todo/api/v1.0/tasksPUT 更新资源 http://127.0.0.1:8000/todo/api/v1.0/tasks/123DELETE 删除资源 http://127.0.0.1:8000/todo/api/v1.0/tasks/123========== ====================== ================================================操作步骤:1. 创建项⽬(假设,你已经熟练掌握如何创建项⽬),项⽬⽬录结构如下:D:/writing/django_restuful -- 项⽬所在⽬录│ manage.py -- Django项⽬的管理⽂件│├─.idea --使⽤的是Pycharm创建,.idea是PyCharm的项⽬配置⽂件││ django_restful.iml││ misc.xml││ modules.xml││ workspace.xml│││└─inspectionProfiles│ profiles_settings.xml│├─api --创建的⼀个app││ admin.py││ apps.py││ models.py││ tests.py││ views.py││ __init__.py│││└─migrations --每个app都有⼀个migrations包│ __init__.py│├─django_restful --每个项⽬都有⼀个和项⽬名⼀致的包,包含配置⽂件、wsgi、跟路由urls││ settings.py││ urls.py││ wsgi.py││ __init__.py│││└─__pycache__│ settings.cpython-37.pyc│ __init__.cpython-37.pyc2. 编写api/views.py# coding:utf8from django.views import Viewfrom django.http import JsonResponseimport json# 为了专注于演⽰接⼝的开发,这⾥没有使⽤数据库,只是⽤了⼀个list作为存储容器tasks = [{'id': 1,'title': u'Buy groceries','done': False},{'id': 2,'title': u'Learn Python','done': False}]class TodoList(View):def get(self, request):"""获取所有task"""return JsonResponse(tasks, safe=False)def post(self, request):"""添加⼀个task"""data = json.loads(request.body)try:task = {"id": tasks[-1]['id'] + 1,'title': data['title'],'done': False}tasks.append(task)except Exception as err:return JsonResponse({{"errcode": 4001, "errmsg": "任务添加失败"}})else:return JsonResponse(task, safe=False)class Todo(View):def get(self, request, task_id):"""获得某个task"""task_id = int(task_id)task = list(filter(lambda t: t['id'] == task_id, tasks))if not task:return JsonResponse({"code": 400})return JsonResponse({'task': task[0]})def delete(self, request, task_id):"""删除某个task"""task_id = int(task_id)task = list(filter(lambda t: t['id'] == task_id, tasks))if task:tasks.remove(task)return JsonResponse({'result': True})def put(self, request, task_id):"""修改某个task"""task_id = int(task_id)data = json.loads(request.body)task = list(filter(lambda t: t['id'] == task_id, tasks))if len(task) == 0:return JsonResponse({"code": 400})if not data:return JsonResponse({"code": 400})if data.get('title') is None:return JsonResponse({"code": 400})if data.get('done') and type(data['done']) is not bool:return JsonResponse({"code": 400})task[0]['title'] = data.get('title', task[0]['title'])task[0]['done'] = data.get('done', task[0]['done'])return JsonResponse({'task': task[0]})3. 编写api/urls.pyfrom api import viewsfrom django.urls import re_pathurlpatterns = [re_path('^tasks/$', views.TodoList.as_view(), name='todolist'),re_path('^tasks/(?P<task_id>\d+)/$', views.Todo.as_view(), name='todo'),]4. 编写django_restful/urls.pyfrom django.contrib import adminfrom django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('todo/api/v1.0/', include('api.urls')),]5. 编写django_restful/settings.pyMIDDLEWARE = [...'monMiddleware',# 'django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware',....]注意:这⾥为了测试的⽅便,禁⽤了csrf,在实际项⽬中不要禁⽤,禁⽤的话不安全。
RESTful接口规范(带案例)REST(Representational State Transfer)是一种软件设计原则,它强调在Web应用程序中使用现有的标准和协议。
RESTful接口通过HTTP协议传输数据,使得客户端能够使用简单而统一的方式与服务端进行通信。
下面是一些关于RESTful接口规范的重要原则和准则,并附带一些示例来说明它们的用法。
1. 使用合适的HTTP方法(GET、POST、PUT、DELETE):RESTful接口应根据不同的操作类型选择合适的HTTP方法,以清晰地表示进行的操作。
例如,GET方法用于从服务器检索资源,而POST方法用于在服务器上创建新资源。
示例:- 获取用户信息:GET /users/{id}- 创建新用户:POST /users2. 使用合适的资源和集合命名:资源和集合应以名词形式命名,并使用复数形式表示集合。
这样做可以使接口更加直观且易于理解。
例如,对于用户资源,可以用/users表示用户集合,/users/{id}表示单个用户资源。
示例:- 获取所有用户:GET /users- 创建新用户:POST /users3. 使用合适的HTTP状态码:RESTful接口应使用合适的HTTP状态码来表示请求的结果。
例如,200表示成功,404表示资源未找到,500表示服务器内部错误。
HTTP状态码可以提供关于请求的详细信息,使客户端能够根据不同的状态码采取适当的行动。
示例:- 用户创建成功:201 Created- 用户不存在:404 Not Found4. 使用合适的数据格式:RESTful接口可以使用不同的数据格式进行数据交换,如JSON、XML等。
JSON是最常用的格式,它具有灵活性和易用性。
使用一致的数据格式可以使接口更易于理解且易于开发。
示例:- 请求头中指定数据格式:Accept: application/json- 响应中返回JSON数据:Content-Type: application/json5.使用资源关联和嵌套:如果资源之间存在关联,可以使用嵌套的方式表示它们之间的层次关系。
理解
1.每一个URL代表一种资源
2.客户端和服务端之间,传递这种资源的某种表现层,客户端通过四个HTTP动词
对服务端资源进行操作,实现“表现层状态转化”
资源:网络的具体信息,如图片、文字等
表现层:"资源"是一种信息实体,它可以有多种外在表现形式。
我们把"资源"具体呈现出来的形式,如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现
状态转化:访问一个网站,就代表了客户端和服务器的一个互动过程。
在这个过程中,势必涉及到数据和状态的变化。
4个HTTP动词:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
安装 flask restful
1.cmd输入:pip install flask,安装flask
2.cmd输入:pip install flask-restful,安装flask-restful
安装过程中会出现如下报错:
You are using pip version 9.0.1, however version 19.2.3 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' comm and.
解决方法
升级pip python -m pip install --upgrade pip 注意:某些Flask版本下,引入模块时采用from flask.ext.restful import Api出错,则可以使用from flask_restful import Api
官网教程
例证
restful.py 内容:
#!/usr/bin/python3
# encoding:utf‐8
from flask import Flask,request
from flask_restful import reqparse, abort, Api, Resource
#初始化app、api
app = Flask(__name__)
api = Api(app)
LISTS = [
{'parameter': '首页'},
{'parameter': '登录'},
{'parameter': '后台'}
]
# /LISTS/<list_id>(url参数),判断输入的参数值列表LISTS下标越界,越界则退出
def abort_if_list_doesnt_exist(list_id):
try:
LISTS[list_id]
except IndexError:
abort(404, message="输入的值,不在范围内")
'''
add_argument('per_page', type=int, location='args') str
add_argument中通过指定参数名、参数类型、参数获取方式来获取参数对象并支持做合法性校验
第一个参数是需要获取的参数的名称
参数type: 参数指的类型, 如果参数中可能包含中文需要使用six.text_type. 或直接不指定type
参数location: 获取参数的方式,可选的有args(url中获取)、json(json类型的)、form(表单方式提交) 参数required:是否必要,默认非必要提供 required=True(必须)
参数help:针对必要的参数,如果请求时没有提供,则会返回help中相应的信息
'''
parser = reqparse.RequestParser()
#入参parameter,location='json'表示为入参为json格式
parser.add_argument('parameter',location='json')
# 路由类,函数get、post、put、delete等实现http请求方法
# url不带入参 /LISTS
class c_dictList(Resource):
#类型get,根据列表LISTS,处理,返回一个新的列表r_lists
def get(self):
r_lists = []
for listV in LISTS:
if listV:
new_list = {}
#LISTS列表存的是字典,遍历时为字典listV['parameter'],可获取字典值
new_list['parameter'] = listV['parameter']
#LISTS为列表,index可以查出对应下标值
new_list['url'] = 'url/'+ str(LISTS.index(listV))
#LISTS列表中添加字典
r_lists.append(new_list)
return r_lists
#类型post,在列表LISTS后添加一个值,并返回列表值
def post(self):
args = parser.parse_args()
list_id = len(LISTS)
#args['parameter'],入参
LISTS.append({'parameter': args['parameter']})
return LISTS, 201
# 路由类,函数get、post、put、delete等实现http请求方法
# url带入参 /LISTS/<list_id>
class c_dict(Resource):
#根据输入url入参值作为LISTS的下标,返回该值
def get(self, list_id):
url_int = int(list_id)
abort_if_list_doesnt_exist(url_int)
return LISTS[url_int]
#根据输入url入参值作为LISTS的下标,修改该值,并返回列表值
def put(self, list_id):
url_int = int(list_id)
args = parser.parse_args()
#args['parameter'],入参
parameter = {'parameter': args['parameter']}
LISTS[url_int] = parameter
return LISTS, 201
#根据输入url入参值作为LISTS的下标,删除该值
def delete(self, list_id):
url_int = int(list_id)
abort_if_list_doesnt_exist(url_int)
del LISTS[url_int]
return '', 204
#设置资源路由api.add_resource(类名,url路径)
#url,不带入参,如:http://127.0.0.1:8891/LISTS
api.add_resource(c_dictList, '/LISTS')
#url,带入参,<list_id>为变量值,如:http://127.0.0.1:8891/LISTS/1
api.add_resource(c_dict, '/LISTS/<list_id>')
if __name__ == '__main__':
#不设置ip、端口,默认:http://127.0.0.1:5000/
#app.run(debug=True)
#设置ip、端口
app.run(host="127.0.0.1", port=8891,debug=True)
控制台运行结果:
Serving Flask app "123" (lazy loading) * Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead. * Debug mode: on
Restarting with stat * Debugger is active! * Debugger PIN: 279-443-943 * Running on http://127.0.0.1:8891/ (Press CTRL+C to quit)
postman调用结果
url不带参数
get
post,有请求入参,格式为json,入参值追加到列表后面
url带参数
get,根据url入参值如下图值=1,作为LISTS的下标,获取列表值
put ,根据url入参值如下图值=1,作为LISTS的下标,修改该列表值为请求入参值,登录改为订单
put ,根据url入参值如下图值=2,作为LISTS的下标,删除该值,成功返回状态204。