Python Flask 开发网络应用指南00:创建你的 REST API

共 2031字,需浏览 5分钟

 ·

2020-09-13 09:57



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

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

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

安装好你的 Flask

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

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

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

pip install Flask




这就完事了...




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





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



 

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

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





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







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





在浏览器中输入
http://127.0.0.1:8888/fxxk :






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

你可以把它当做最简单的网络服务端的应用,这时候你在浏览器输入了链接并按下回车后可以 在 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的正确姿势使用 Python 写一个友好的 API 还是很重要的



Flask 创建 REST API


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

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

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





Flask 的 Get 请求

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






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






跑起来看看:





这样就得到了 json 数据了。


Flask 的 POST 请求



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






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

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




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




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

ok,我们下回见,peace!


扫一扫

学习 Python 没烦恼




下面这按钮是不是很好看?
你应该懂我意思的吧...
浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报