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

后台有些朋友希望我写一写 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 没烦恼

下面这按钮是不是很好看?
你应该懂我意思的吧...
(0)

相关推荐

  • Python效率不好?莫慌,这7大Python效率工具你得用上!

    为了提高效率,我们在平时工作中常会用到一些Python的效率工具,Python作为比较老的编程语言,它可以实现日常工作的各种自动化.为了更便利的开发项目,这里给大家推荐几个Python的效率工具. 1 ...

  • FaaS 的简单实践

    FaaS 或者说serverless是一种云计算模型,其主要特点是用户根本不需要租用任何虚拟机ーー从启动虚拟机,执行代码,返回结果和停止虚拟机这些由云提供商处理的整个过程.这比其他云计算实现更具成本效 ...

  • Jenkins REST API 实例

    背景: Jenkins具有丰富的插件生态,足以满足我们日常工作的需求,但如果我们想通过具体的Jenkins任务直接对外提供服务,而不想将内部的具体实现对外暴露(否则,需添加对应的用户权限,通过页面执行 ...

  • 基于Flask的 api(二)

    基于Flask的 api(二) 使用flask 构造服务的方法有: (1)利用路由实现 (2)利用flask的扩展插件实现 利用路由实现REST API 1.GET 获取资源 获取列表 from fl ...

  • Python Flask 开发 web 指南01之创建你的第一个 RESTful APP

    上回,我们知道了 Flask 是一个 web 轻量级框架,可以在上面做一些扩展,我们还用 Flask 创建了 API,也说到了 REST API,今天咱们来玩一下 Flask-RESTful,体验一下 ...

  • 使用 Python Kivy 开发 APP 之:创建一个小游戏玩玩

    Python除了做ai,还能干啥? 其中放了张 Kivy 的图 什么是 Kivy 呢 简单点说它就是一个 Python 库 你可以使用它开发 APP 像你常看到的用户界面程序 多点触控程序 都可以使用 ...

  • python测试开发django-20.添加创建时间DateTimeField

    前言 我们在admin后台发布一篇文章的时候,一般会有创建时间和最后更新时间这2个字段,创建时间就是第一次编辑文章的时候自动添加的,最后更新时间就是每次修改文章的内容后自动更新 在models.py建 ...

  • Flask Session 网站用户登录,Python Web 开发小白进阶关键

    Flask Session 网站用户登录,Python Web 开发小白进阶关键

  • Python可以开发IOS吗?Python基础!

    在大家的印象中,Python是一门应用领域非常广泛的编程语言,可以说无所不能,那么Python可以开发IOS或安卓APP吗?我想很多人都好奇这个问题,接下来我们一起来看看. 当然可以,Python是可 ...

  • Python Web开发哪些模块好用?这几类必知!

    关于Python Web开发和图形用户界面的模块有哪些?今天小编通过这篇文章为大家整理了一些常用的模块,我们一起来看看吧. Web开发: 1. Requests:Python内置模块(urllib和u ...

  • Python可以开发网站吗?常用方法推荐!

    说起Python大家应该都不是陌生的吧,也知道现在想要学习Python的人有很多,同时Python在某些方面具有非常独特的优势和特色,那么Python有哪些好用的网站开发框架呢?今天小编就为大家分享一 ...

  • Python Web开发有哪些框架?五大框架

    想必很多人都知道Python语言,Python是一门非常不错的编程语言,在爬虫.数据分析.人工智能领域有着非常不错的作用,初次之外,我们熟知的web开发也是Python的应用领域之一,那么你知道Pyt ...

  • Python可以开发网页吗?Python基础!

    什么是Python?Python是一种计算机程序设计语言,也是一种面向对象的动态类型语言,被用于独立的.大型项目的开发,可应用于各大领域.那么Python适合网页编程吗?我们一起来看看吧. Pytho ...