当前位置: 首页 > news >正文

无锡网站托管山东建筑公司排名

无锡网站托管,山东建筑公司排名,导航网站 php,asp手机网站源码下载Flask-RESTful是一个强大的Python库#xff0c;用于构建RESTful APIs。它建立在Flask框架之上#xff0c;提供了一套简单易用的工具#xff0c;可以帮助你快速地创建API接口。Flask-RESTful遵循REST原则#xff0c;支持常见的HTTP请求方法#xff0c;如GET、POST、PUT和DE… Flask-RESTful是一个强大的Python库用于构建RESTful APIs。它建立在Flask框架之上提供了一套简单易用的工具可以帮助你快速地创建API接口。Flask-RESTful遵循REST原则支持常见的HTTP请求方法如GET、POST、PUT和DELETE并提供了验证、授权、分页等功能。 理解API理解Restful API理解装饰器理解Flask框架使用Python Flask 实现Restful API API的理解 API(application programming interfaces)即应用程序编程接口。API由服务器Server提供服务器有各种各样的类型一般我们浏览网页用到的是web server即网络服务器通过API计算机可以读取、编辑网站数据就像人类可以加载网页、提交信息等。通俗地API可以理解为家用电器的插头用户只提供插座并执行将插头插入插座的行为不需要考虑电器内部如何运作。从另外一个角度上讲API是一套协议规定了与外界的沟通方式如何发送请求和接受响应。 理解 RESTful API RESTful API即满足RESTful风格设计的APIRESTful表示的是一种互联网软件架构(以网络为基础的应用软件的架构设计)如果一个架构符合REST原则就称它为RESTful架构。RESTful架构的特点 每一个URI代表一种资源客户端和服务器之间传递这种资源的某种表现层把资源具体呈现出来的形式叫做它的表现层Representation。比如文本可以用txt格式表现也可以用HTML格式、XML格式、JSON格式表现甚至可以采用二进制格式图片可以用JPG格式表现也可以用PNG格式表现。客户端通过四个HTTP动词四个表示操作方式的动词GET、POST、PUT、DELETE。它们分别对应四种基本操作GET用来获取资源POST用来新建资源也可以用于更新资源PUT用来更新资源DELETE用来删除资源。 后端的RESTful API指的是在服务器端实现的符合RESTful架构风格的API它用于提供数据和服务并且通常被前端或其他服务端所调用。后端的RESTful API包括了资源的定义、URI的设计、HTTP方法的使用以及数据格式等内容。 而前端的RESTful API通常是指在客户端比如浏览器端、移动端应用中调用后端RESTful API的方式和规范。前端的RESTful API通常是通过Ajax、Fetch API或者一些库比如axios来发起HTTP请求按照RESTful规范与后端的API进行交互包括发送GET、POST、PUT、DELETE等请求处理返回的数据等。 设计 RESTful API 设计 RESTful API 需要遵循一定的规范和原则。下面是一些常见的设计原则 • 使用名词来表示资源比如 /users、/articles 等。• 使用 HTTP 方法来表示对资源的操作比如 GET、POST、PUT、DELETE 等。• 使用 URL 参数来传递附加信息比如查询条件、分页信息等。• 使用 HTTP 状态码来表示操作结果比如 200 表示成功、201 表示创建成功、400 表示请求错误、404 表示资源不存在等。• 使用 JSON 或 XML 格式来传输数据。 下面是一个简单的 RESTful API 设计示例 GET /users # 获取所有用户信息 GET /users/1 # 获取指定用户信息 POST /users # 添加用户 PUT /users/1 # 修改指定用户信息 DELETE /users/1 # 删除指定用户 理解装饰器 为了理解装饰器应该先做好三个方面的准备 1. 理解对象 通过变量和对象的关系理解对象在python中如果要使用一个变量不需要提前进行声明只需要在用的时候给这个变量赋值即可。如 a1,整数1 为一个对象a 是一个引用利用赋值语句引用a指向了对象1这边形象比喻一下这个过程就相当于“放风筝”变量a就是你手里面的“线”python就跟那根“线”一样通过引用来接触和拴住天空中的风筝——对象。由于Python一切皆是对象的理念所以函数也是一个对象。 比如,写一个函数也可以是说创造了一个函数对象。 def cal(x,y):resultxyreturn result 这时便是创造了一个叫做cal的函数对象。然后就可以使用了 cal(1,2) #直接使用了cal这个函数对象 ...........或者............. calculatecal #把一个名为calculate的变量指向cal这个函数对象 calculate(1,2) 2.理解函数带括弧和不带括弧时分别代表的意思 如果只写一个cal(不带扩号)此时的cal仅仅是代表一个函数对象当写成cal(1,2)时就是在告诉编辑器说“执行cal这个cal函数” 3.理解可变参数和关键字参数 可变参数 定义可变参数和定义一个list或tuple参数相比仅仅在参数前面加了一个*号。如下在函数内部参数numbers接收到的是一个tuple并且调用该函数时可以传入任意个参数包括0个参数 def calc(*numbers):sum 0for n in numbers:sum sum n * nreturn sum calc(1,2) # 5 关键字参数 可变参数允许传入0个或任意个参数这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许传入0个或任意个含参数名的参数这些关键字参数在函数内部自动组装为一个dict。请看示例 def person(name, age, **kw):print(name:, name, age:, age, other:, kw) person(Bob, 35, cityBeijing) name: Bob age: 35 other: {city: Beijing}person(Adam, 45, genderM, jobEngineer) name: Adam age: 45 other: {gender: M, job: Engineer} 现在正式开始理解装饰器了。首先理解为什么需要装饰器呢 主要原因是装饰器可以起到一个“偷懒”的作用比如写了很多个简单的函数现在想知道在运行的时候是哪些函数在执行并且你又觉得这个没有必要写测试只是想要很简单的在执行完毕之前给它打印上一句“Start”那该怎么办呢你可以这样 def func_name(arg):print Start func_namesentence 想想看给每一个函数后面都加上那一句话将是非常的麻烦的。但是有了装饰器就不一样了。 def log(func):def wrapper(*arg, **kw):print Start%s%funcreturn func(*arg,**kw)return wrapperlog def func_a(arg):passlog def func_b(arg):passlog def func_c(arg):pass 这段代码是一个简单的装饰器示例使用了 Python 的装饰器语法。 首先定义了一个装饰器函数 log该函数接受一个函数 func 作为参数。装饰器的作用是在函数执行前后打印日志。 def log(func): 定义了装饰器函数 log接受一个函数作为参数这个函数将被装饰。 def wrapper(*arg, **kw): 在装饰器内部定义了一个内部函数 wrapper它接受任意数量的位置参数 arg 和关键字参数 kw。这里使用 *arg 和 **kw 来接收任意数量的参数。 print(Start%s % func): 在函数执行前打印日志信息使用了 % 格式化字符串来将 func 的字符串表示插入日志中。 return func(*arg, **kw): 调用被装饰的原始函数 func并将接收到的参数传递给它。返回原始函数的结果。 这里使用 log 语法将装饰器应用到了三个函数 func_a、func_b 和 func_c 上。这相当于执行了以下操作 func_a log(func_a) func_b log(func_b) func_c log(func_c)这样每当调用这些函数时实际上是调用了被装饰后的版本这些版本在执行前后会打印日志信息。 理解Flask框架一个小的Flask应用 from flask import Flask app Flask(__name__)app.route(/) def hello_world():return Hello World!if __name__ __main__:app.run() 运行上面代码在浏览器上输入http://127.0.0.1:5000/便会看到 Hello World 字样。 那么这段代码做了什么 1.首先导入了Flask类。这个类的实例是WSGI应用程序 2.接下来我们创建一个该类的实例第一个参数是应用模块或者包的名称如果使用单一的模块应该使用name,因为模块的名称将会因其作为单独应用启动还是作为模块导入而有不同 3.然后我们使用route()装饰器告诉Flask什么样的URL能够触发我们的函数。 4.这个函数的名字也在生成 URL 时被特定的函数采用这个函数返回我们想要显示在用户浏览器中的信息。 5.最后使用run()函数来让应用运行在本地服务器上。其中if__name__main:确保服务器只会在该脚本被Python解释器直接执行的时候才会运行而不是作为模块导入的时候。 如果启用了调试支持服务器会在代码修改后自动重新载入并在发生错误时提供一个相当有用的调试器。启动调试app.run(debugTrue)并且route()装饰器把一个函数绑定到对应的URL上。如下例子 app.route(/) def index():return Index Pageapp.route(/hello) def hello():return Hello World 其中还是可以构造含有动态部分的URL要给 URL 添加变量部分可以把这些特殊的字段标记为 variable_name 这个部分将会作为命名参数传递到函数。规则可以用 converter:variable_name 指定一个可选的转换器如下例子。 app.route(/user/username) def show_user_profile(username):# show the user profile for that userreturn User %s % usernameapp.route(/post/int:post_id) def show_post(post_id):# show the post with the given id, the id is an integerreturn Post %d % post_id 如果Flask能匹配URL也是可以生成URL的。用url_for()来给指定的函数构造URL。它接受函数名作为第一个参数也接受对应 URL 规则的变量部分的命名参数。未知变量部分会添加到 URL 末尾作为查询参数。这里有一些例子: from flask import Flask, url_forapp Flask(__name__)app.route(/) ... def index(): pass ...app.route(/login) ... def login(): pass ...app.route(/user/username) ... def profile(username): pass ...with app.test_request_context(): ... print url_for(index) #/ ... print url_for(login) #/login ... print url_for(login, next/) #/login?next/ ... print url_for(profile, usernameJohn Doe) ... #/user/John%20Doe HTTP(与web应用会话的协议)有许多不同的访问URL方法。默认情况下路由只回应GET请求但是通过route()装饰器传递methods参数可以改变这个行为。 app.route(/login, methods[GET, POST]) def login():if request.method POST:do_the_login()else:show_the_login_form() 使用Python Flask 实现Restful API  Flask 是一个轻量级Web框架可以实现快速的 Web 开发并且提供了良好的扩展性。另外Flask 还为实现 Restful API 提供了很多方便的工具如Flask Restful 和 Flask Restplus 等。Flask 的代码结构简单上手容易比 Django 等其他框架更为轻量级更适合快速迭代。 安装 Flask 首先我们需要安装 Flask。可以使用 pip 命令来安装 pip install flask 创建 Flask 应用 首先我们需要导入 Flask 模块并创建一个 Flask 应用实例 from flask import Flaskapp Flask(__name__) 这里的 __name__ 参数表示当前模块的名字Flask 根据这个参数来确定应用的根目录。 定义 API 路由 接下来我们需要定义 API 的路由和处理函数。在 Flask 中可以使用 app.route 装饰器来定义路由 app.route(/users, methods[GET]) def get_users():return jsonify(users) 这里的 /users 表示路由的路径methods[GET] 表示这个路由只支持 GET 方法。get_users 函数是这个路由的处理函数它返回一个 JSON 格式的用户列表。 同样的我们还可以定义其他路由和处理函数比如获取指定用户信息、添加用户、修改用户信息和删除用户等。 处理请求参数 在 RESTful API 中客户端通常需要向服务器传递一些参数比如查询条件、请求体等。在 Flask 中可以使用 request 对象来访问这些参数 user {id: request.json[id], name: request.json[name], age: request.json[age]} 这里的 request.json 表示请求体中的 JSON 数据。如果请求体不是 JSON 格式可以使用 request.form 或 request.args 来获取表单数据或查询参数。 返回 JSON 数据 在 RESTful API 中通常需要返回 JSON 格式的数据。在 Flask 中可以使用 jsonify 函数来将 Python 对象转换为 JSON 格式的数据 return jsonify(users) 这里的 users 是一个 Python 列表对象jsonify(users) 将它转换为 JSON 格式的数据并返回给客户端。 启动应用 最后我们需要在应用中启动 Flask 服务器 if __name__ __main__:app.run() 这里的 __name__ 参数表示当前模块的名字app.run() 表示启动 Flask 服务器默认监听在本地的 5000 端口上。如果需要修改监听地址或端口可以使用 host 和 port 参数来指定。 编写代码 下面是一个简单的 Flask 应用它实现了一个简单的 RESTful API用于获取和修改用户信息 from flask import Flask, jsonify, requestapp Flask(__name__)# 用户数据模拟数据库 users [{id: 1, name: Alice, age: 20},{id: 2, name: Bob, age: 25},{id: 3, name: Charlie, age: 30}, ]# 获取所有用户信息 app.route(/users, methods[GET]) def get_users():return jsonify(users)# 获取指定用户信息 app.route(/users/int:user_id, methods[GET]) def get_user(user_id):user next((user for user in users if user[id] user_id), None)if user:return jsonify(user)else:return jsonify({error: User not found})# 添加用户 app.route(/users, methods[POST]) def add_user():user {id: request.json[id], name: request.json[name], age: request.json[age]}users.append(user)return jsonify(user)# 修改用户信息 app.route(/users/int:user_id, methods[PUT]) def update_user(user_id):user next((user for user in users if user[id] user_id), None)if user:user[name] request.json.get(name, user[name])user[age] request.json.get(age, user[age])return jsonify(user)else:return jsonify({error: User not found})# 删除用户 app.route(/users/int:user_id, methods[DELETE]) def delete_user(user_id):user next((user for user in users if user[id] user_id), None)if user:users.remove(user)return jsonify({result: True})else:return jsonify({error: User not found})if __name__ __main__:app.run() 测试 API 启动应用后我们可以使用 curl 命令或其他工具来测试 API # 获取所有用户信息 curl http://localhost:5000/users# 获取指定用户信息 curl http://localhost:5000/users/1# 添加用户 curl -H Content-Type: application/json -X POST -d {\id\: 4, \name\: \David\, \age\: 35} http://localhost:5000/users# 修改用户信息 curl -H Content-Type: application/json -X PUT -d {\name\: \Alice Smith\, \age\: 22} http://localhost:5000/users/1# 删除用户 curl -X DELETE http://localhost:5000/users/4 在 Windows 的命令提示符中需要使用双引号 对 JSON 数据进行引用并且在内部的双引号前面加上反斜杠 \ 进行转义。 参考​​​​​​​ 用Python 的Flask实现 RESTful API(学习篇) 通过Flask框架创建灵活的、可扩展的Web Restful API服务 - 知乎 (zhihu.com)
http://www.dnsts.com.cn/news/60968.html

相关文章:

  • 学校网站 模板阿里云突发性能适用于做网站吗
  • 网站建设公司销售提成昆明网站建设首选才力
  • 在网站怎么做收款二维码微信小程序开发公司
  • 模具机械设备东莞网站建设合肥网站定制开发公司
  • 建立网站域名的费用搭建网站 赚钱
  • wordpress用户管理员教程seo关键字优化软件
  • 滕州英文网站建设做网站用哪个笔记本
  • 2008如何添加iis做网站网站栏目建设方案
  • 百度云视频 wordpress深圳如何优化
  • 企业设计网站公司排行榜建设网站的程序
  • jquery素材网站网站建设中要多使用图片
  • 区块链交易网站开发传媒公司制作网站
  • 建设网站有几种渠道网站内容建设项目预算
  • 内衣网站建立网络营销与直播电商
  • 做平台外卖的网站需要什么资质怎样加强企业网站建设
  • 档案网站建设比较分析漫画网站建设教程
  • 定远建设小学网站做网站公众号要多少钱
  • 中国114黄页网站宣传广告怎么在微信公众号上做网站
  • 昌吉做网站如何把电脑改成服务器做网站
  • asp网站建设源码阿里巴巴logo发展史
  • 手机网站成功案例在线网站制作模拟
  • 怎么看网站开发者页面wordpress数据库邮箱
  • 做礼品的网站唐山百度搜索排名优化
  • 湖南地税局官网站水利建设基金小内存 wordpress 优化
  • 邢台手机网站建设多少钱企业咨询服务
  • 如何制作网站网页做的网站如何防止怕爬虫
  • wordpress 仿站 教程网杭州网站制作公司网站
  • 公司网站建设 费用入账网站 定制
  • 建设网站需要哪些域名做网站建设怎么介绍自己
  • 婴幼儿网站模板源码之家怎么打不开