web无序列表去掉点_Python Flask开发web指南:创建REST API

后台有些朋友希望我写一写 Python 后台开发相关的,那么就来写几篇关于 Flask 的使用吧,把你们比较想知道的一些东东说一下,比如怎么使用 Flask 来创建 API,如何使用好 Flask-RESTful,Flask 怎么对接数据库,如何存储数据,数据怎么渲染,还有就是写完了应用,怎么发布给别人使用等。

如果时间允许的话,我尽量写的容易理解点,你尽量多点点在看和转发,怎么样?

第一篇,简单点,那么就来创建你的 API 吧。

安装好你的 Flask

我们知道, Flask 是一个轻量级的 web 框架,它提供了实现 web 的基础功能,而我们要做的一些数据库存储,模板引擎都可以自己扩展。

Flask 本身依赖了这么几个库:click、Werkzeug、Jinja、itsdangerous、MarkupSafe。

不过我们不用预先安装,因为我们在安装 Flask 的时候,会自动安装相关的依赖库,像这样:

pip install Flask

cc16cb16532573b3d1efaa7cb7d41e26.png

这就完事了...

96a11a50e000ef48164eb94b4ae7caf7.png

你的第一个 web 应用

首先你可以创建一个 myapp.py,然后导入你刚刚安装的 Flask:

d3b8638315181e76e0fe00560f54b15b.png

接着创建一个 Flask 实例,传入的参数为你的模块名称,如果是像我们现在只有当前这个 py 的话,可以传入__name__,这样 Flask 等会才能识别模块启动。

d23322eab9ca08dcd4b6d3b23015a366.png

通常我们在浏览器访问某个文件的时候,会使用 “/” 来访问相应的路径,比如想要访问 fxxkpython 网站下的某个类目资源,我们会这样:https://vip.fxxkpython.com/?cat=343

在 Flask 中,我们可以直接使用 route 装饰器:

28d08b0c8fb11281812e10633de0e732.png

这样,我们就可以通过指定的路由,访问相应的资源,可以让 app 跑起来试试:

5ea43a49333d44d23ddcefa446beaa92.png

这里将这个 web 应用的端口定义为 8888, 那么可以这样访问它:

682fdc9e3d207001c8aa23a0c7916dde.png

在浏览器中输入

http://127.0.0.1:8888/fxxk :

58f8d7b1f3eb6e0034f2c5b65ea5e72e.png

可以看到我们后台定义的路由资源就被访问到了。

你可以把它当做最简单的网络服务端的应用,这时候python爬虫入门01:教你在 Chrome 浏览器轻松抓包 ,可以试试看你控制台的输出。

我们的服务端除了可以被简单的 GET 请求页面外,也可以接收不同的请求,从而返回相应的数据或操作,比如 POST、DELETE、PUT、HEAD 等等,我们可以在 FLASK 中根据具体的情况提供相应的方法。

而这,我们常会用到 REST API 。

什么是 REST API

它主要用来约束 API 的写法,让别人使用起来能感到清晰,简洁,一目了然,使用方便。像这样:

我们定义的 URI 需要清晰易于理解,例如:

https://api.fxxkpython.com/shop/products/list

这样我们一眼就能明白这是请求商品数据列表。

尽量通过 JSON 或者 XML 来传递数据对象和属性。

明确的使用 HTTP 方法(例如,get、post、put和delete)。

无状态,在请求的时候,服务端不存储客户端的上下文状态。

小帅b,公众号:学习python的正确姿势

Flask 创建 REST API

接下来用一个简单的示例,给你演示一下 Flask 最常用到的 GET和 POST。

比如现在我们想要提供按摩会所的 API。

这篇先不讲数据库相关的,我们可以用 list 和 dict 来封装会所的名称、具体会所下的技师员工号码和价格的数据,比如有一家叫做 “超棒休闲会所”,里面有一位技师 808 号,按摩价格 666,就可以这样表示:

b2ada00f2e84fa08618b2aee197de30f.png

Flask 的 Get 请求

那么这个时候,我们要给前端提供获取所有会所数据的 API,返回 json 数据,我们就可以这样:

ea12d76b68034380f5a3abfeb5e396ed.png

这里我们用到了 jsonify ,它可以将字典转化为 Json, 为了防止中文乱码,我们可以这样设置:

9b9c3bea4e334aff6436748e3b200288.png

跑起来看看:

33973771f13b2fc37a0a6f50093ec225.png

这样就得到了 json 数据了。

Flask 的 POST 请求

接着我们可以提供给前端一个添加会所数据的 API,使用 POST 请求,后端获取 json 数据,然后添加到列表中来:

263bcfb30c6d97ccf5d3f1c07e7a5c91.png

我们可以使用 Flask 的 request,通过 get_json 方法就可以得到前端传来的 json 数据,并且转化为字典,这样我们就可以将传来的数据存储到列表中。

可以使用 curl 进行 POST 请求我们刚刚写的接口:

09e254bdff0925a699e08ea425483dbd.png

请求成功,我们再来获取所有数据看看:

fdddc7bd9960fdc12d6f2857d44e9654.png

可以看到刚刚提交的数据也在了。

ok,我们下回见,peace!

eb72e0d3585f4e003ed17f0c55ab1013.gif

关注我

学习 Python 没烦恼

下面点赞按钮是不是很好看?

你应该懂我意思的吧...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值