Flask框架之Restful--介绍--下载--基本使用

简介: Flask框架之Restful--介绍--下载--基本使用

目录


Restful


概念


架构的主要原则


适用场景


协议


数据传输格式


url链接规则


HTTP请求方式


状态码


Restful的基本使用


介绍


优势


缺点


安装


基本使用


注意




Restful


概念


RESTful(Representational State Transfer)是一种用于设计网络应用程序的架构风格和原则,尤其适用于Web服务。它通过使用标准的HTTP方法(如GET、POST、PUT和DELETE)来结构化和与资源进行交互。


架构的主要原则


1.客户端-服务器架构:客户端和服务器是分离的实体,在网络上进行通信。客户端负责用户界面和用户体验,而服务器管理资源并处理请求。


2.无状态通信:客户端向服务器发出的每个请求都应包含服务器理解和处理请求所需的所有必要信息。服务器不会在请求之间保留任何特定于客户端的状态。


3.统一接口:RESTful服务应具有一致和标准化的接口。接口通常包括通过URI(统一资源标识符)识别资源,使用HTTP方法和状态码行自我描述的消息,以及作为应用程序状态引擎(HATEOAS)的超媒体,以提供导航API的链接。


4.面向资源:REST将所有内容都视为资源,可以是物理实体(例如对象)或逻辑实体(例如对象集合)。资源通常通过URI进行标识,并可以使用HTTP方法进行操作。


5.无状态服务器:服务器不在请求之间存储任何客户端状态。每个请求都被视为独立的事务,并且服务器不维护客户端的上下文。


6.可缓存:来自RESTful服务的响应可以根据服务器提供的缓存控制头在客户端或中间服务器上进行缓存。


适用场景


一个系统的数据库数据,展现的平台有PC端、移动端、app端、ios端。


前端工程师:都遵循RESTful编程规范


后端工程师:都遵循RESTful编程规范


最终结果:开发效率高,便于管理


协议


用http或者https协议。


数据传输格式


数据传输的格式应该都用json格式。


url链接规则


url链接中,不能有动词,只能有名词。


并且对于一些名词,如果出现复数,那么应该在后面加s。


比如:获取新闻列表,应该使用/news/,而不应该使用/get_news/


HTTP请求方式


GET:从服务器上获取资源。


POST:在服务器上新增或者修改一个资源。


PUT:在服务器上更新资源。(客户端提供所有改变后的数据)


PATCH:在服务器上更新资源。(客户端只提供需要改变的属性)


DELETE:从服务器上删除资源。


状态码

状态码 原因描述 描述
200 OK 服务器成功响应客户端的请求。
400 INVALID REQUEST 用户发出的请求有错误,服务器没有进行新建或修改数据的操作
401 Unauthorized 用户没有权限访问这个请求
403 Forbidden 因为某些原因禁止访问这个请求

404

NOT FOUND

用户请求的url不存在

406

NOT Acceptable

用户请求不被服务器接收(比如服务器期望客户端发送某个字段,但是没有发送)。

500

Internal server error

服务器内部错误,比如遇到bug

Restful的基本使用


介绍


优势


Flask-Restful是一个专门用来写restful api的一个插件。


使用它可以快速的集成restful api接口功能。


在系统的纯api的后台中,这个插件可以帮助我们节省很多时间。


缺点


如果在普通的网站中,这个插件就没有优势了,因为在普通的网站开发中,是需要去渲染HTML代码的,


而Flask-Restful在每个请求中都是返回json格式的数据。


安装

 pip install flask-restful

基本使用


定义Restful的类视图:


1.flask_restful中导入Api,来创建一个api对象。


2. 写一个类视图,让他继承自Resource类,然后在这个里面,使用你想要的请求方式来定义相应的方法,比如你想要将这个类视图只能采用post请求,那么就定义一个post方法。


3. 使用api.add_resource来添加类视图与url

from flask import Flask,url_for
# pip install flask-restful
from flask_restful import Resource,Api
app = Flask(__name__)
# 建立Api对象,并绑定应用APP
api = Api(app)
class LoginView(Resource):
  def get(self):
    return {"flag":True}
  def post(self):
    return {"flag":False}
# 建立路由映射
# api.add_resource(LoginView,'/login/')
api.add_resource(LoginView,'/login/','/login2/',endpoint='login')
with app.test_request_context():
  # werkzeug.routing.BuildError: Could not build url for endpoint 'LoginView'.
  # Did you mean 'loginview' instead?
  # 默认没有写endpoint反向url_for函数通过小写函数名
  # 如果有多个url,会返回第1个URL
  # print(url_for('loginview'))
  print(url_for('login'))
if __name__ == '__main__':
  app.run(debug=True)

注意

1.如果你想返回json数据,那么就使用flask_restful,如果你是想渲染模版,那么还是采用之前的方式,就是app.route的方式。


2.url还是跟之前的一样,可以传递参数。也跟之前的不一样,可以指定多个url。


3.endpoint是用来给url_for反转url的时候指定的。如果不写endpoint,那么将会使用视图的名字的小写来作为endpoint。


4.add_resource的第二个参数是访问这个视图函数的url,这个url可以跟之前的route一样,可以传递参数,并且还有一点不同的是,这个方法可以传递多个url来指定这个视图函数


相关文章
|
16天前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
2月前
|
SQL 监控 安全
Flask 框架防止 SQL 注入攻击的方法
通过综合运用以上多种措施,Flask 框架可以有效地降低 SQL 注入攻击的风险,保障应用的安全稳定运行。同时,持续的安全评估和改进也是确保应用长期安全的重要环节。
173 71
|
2月前
|
安全 网络安全 数据安全/隐私保护
Flask框架的安全机制与其他框架相比有哪些优势和劣势?
总的来说,Flask 的安全机制在灵活性和可扩展性方面有其独特优势,但也需要开发者在安全方面投入更多的精力和努力,以确保应用的安全可靠运行。
71 11
|
1月前
|
SQL 安全 Java
除了Flask框架,还有哪些框架能防止SQL注入攻击?
这些框架都在安全方面有着较好的表现,通过它们的内置机制和安全特性,可以有效地降低 SQL 注入攻击的风险。然而,无论使用哪个框架,开发者都需要具备良好的安全意识,正确配置和使用框架提供的安全功能,以确保应用的安全可靠。同时,持续关注安全更新和漏洞修复也是非常重要的。
57 7
|
2月前
|
搜索推荐 API 开发者
Django框架和Flask框架的适用场景分别是什么?
总体而言,Django 更适合需要全面功能和大规模开发的场景,而 Flask 则更适合灵活性要求高、小型项目或特定需求的开发。当然,具体的选择还应根据项目的具体情况、团队的技术能力和偏好等因素来综合考虑。在实际应用中,开发者可以根据项目的特点和需求,灵活选择使用这两个框架,或者结合它们的优势来构建更强大的 Web 应用程序。
|
2月前
|
安全 数据安全/隐私保护 开发者
Flask框架的安全性如何?
安全是一个持续的过程,需要不断地关注和更新。随着新的安全威胁的出现和技术的发展,开发者需要及时了解并采取相应的措施来应对,以确保 Flask 应用始终处于安全的状态。
|
2月前
|
存储 API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
|
2月前
|
JSON 关系型数据库 测试技术
使用Python和Flask构建RESTful API服务
使用Python和Flask构建RESTful API服务
115 2
|
8月前
|
前端开发 安全 JavaScript
Python的Flask框架的学习笔记(前后端变量传送,文件上传,网页返回)内含实战:实现一个简单的登录页面
Python的Flask框架的学习笔记(前后端变量传送,文件上传,网页返回)内含实战:实现一个简单的登录页面
201 0
|
开发框架 前端开发 Python
flask框架【入门学习笔记一】
flask框架【入门学习笔记一】
flask框架【入门学习笔记一】