专栏文章 测试平台系列 (1) 搭建 Flask 服务

米洛 · 2021年11月24日 · 最后由 夏波 回复于 2022年09月26日 · 6969 次阅读

很久没来 testerhome 逛啦,得益于催饭大佬帮忙开通了专栏权限,秉着不打扰论坛用户,也能有个地方记录自己文章的心态,很不要脸地决定也同步一份文章到 testerhome。

这个教程目前已经更新到了 80 多节,也不算教程,算半个参考吧,希望大家轻拍。

🍦 搭建 Flask 服务

📒 项目地址

点我进入项目地址

代码都会在这里有所展示,喜欢的话可以帮点个 star,谢谢大家了!如果你喜欢该教程,也可以分享给其他人。

📒 关于选型

想了很久,本来打算用Gin做为后端服务,或者作为网关层,后面想了一下好像没这个必要。这个平台的用户量会比较有限,而且也会做一定的服务拆分。于是还是采用了更大众一点的口味: Flask,有的同学可能会说,那怎么不用Django

哈哈,问到点了,Django笔者是真不会,基本上没有接触过,从接触Python Web 开发的时候,我就用的是Flask。好在Flask比较精简,django 用户也能比较快的上手。

📒 环境准备

笔者其实比较好奇,不知道大家是要看一个很完整的过程,还是一个大概的,所以可能比较随性哈,复杂的地方尽量完整,毕竟又写文章又写代码的话,还是比较费事的。前期可能讲的比较仔细,后期可能以代码为主。所以有的地方如果有疑问的话,可以在文章下面评论或者联系本人。

预备知识

  1. 熟悉 pip 的使用方法
  2. 熟悉 Python 语法
  3. 熟悉 Pycharm 用法

工具/软件准备

  • IDE: Pycharm

  • Python3.4以上

    最好是 3.4 以上,笔者这里比较随意,用的是 3.7 版本,没有太大的区别。

📒 最简单的例子

笔者目前的目录在: J:\projects\github.com\wuranxu

以后的代码都会以这个目录为准,仅供参考。

创建项目并通过 Pycharm 打开

安装 Flask 包

在当前目录 (pity) 下打开终端并输入:

pip3 install flask

如果安装过程很缓慢,可以加上豆瓣源:

pip3 install flask -i https://pypi.douban.com/simple

由于笔者已经安装好了,所以没有详细的安装过程。

初始化 app

建立pity/app/__init__.py

编辑__init__.py

from flask import Flask

pity = Flask(__name__)

代码讲解: 这是 flask 的约定用法, 引入 Flask 类并实例化了一个 Flask 对象, 其中__name__为通俗写法。

至此,我们就得到了这样的一个名为"pity"的 Flask实例

编写 Web 服务文件

编写pity/run.py

from app import pity


@pity.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == "__main__":
    pity.run("0.0.0.0", threaded=True, port="7777")

其中@pity.route("/")是一个装饰器, 代表 hello_world 这个函数与路由/进行绑定,也就是说当访问到/路由的时候,函数 hello_world 会自动执行。

pity.run("0.0.0.0", threaded=True, port="7777") 这句话表示启动 web 服务, 第一个参数 0.0.0.0 表示接受任何 ip 的访问,threaded 表示如果有多人同时访问一个接口时是非阻塞的,port 代表服务挂载的端口,这里我们以clearlove为端口号: 7777。

📒 尝试一下吧!

运行 run.py,可在 pycharm 运行也可以在终端里输入python3 run.py运行。

可以看到Running on http://0.0.0.0:7777, 说明服务启动成功了!

验证一下

咱们都知道HTTP是有很多种方法的,咱们这种 pity.route 如果没有指定方法的话,默认就是GET方法。

打开浏览器输入: http://localhost:7777/

如果看到这个 hello world 说明你成功了!

今天的课程就到这里了,下期见。说实话写的有点累,代码没写几行,屁话写了一大堆,后面可能要加快速度了!

全部代码地址: https://github.com/wuranxu/pity

觉得有用的话可以帮忙点个 Star 哦 QAQ

共收到 24 条回复 时间 点赞

沙发,无敌哥流批~

板凳,无敌哥天下无敌

前排板凳瓜子~

沙发,无敌哥流批~

支持,期待后续更新😁

大佬牛皮

无敌哥牛逼

无敌哥牛逼🆒

Flask 目前我看到最适合我们测试学的教程了这是。

无敌哥牛逼

无敌哥 nb

看过楼主的教程,还不错

经常骚扰无敌哥,也从无敌哥上学到挺多的,感谢无敌哥指导👍

无敌哥牛逼

牛逼牛逼 加油加油

这个教程目前已经更新到了 80 多节,也不算教程,算半个参考吧,希望大家轻拍。

楼主说的这个教程在哪里啊,不是指的这个帖子吧

米洛 #21 · 2021年11月29日 Author
凯丽 回复

同步一份到 testerhome,等不及的可以去 readthedocs 看看 = =
文档地址

谢谢大佬的回复

米洛 回复

文档写的实在太好了,膜拜

米洛 #24 · 2021年11月30日 Author
凯丽 回复

😂 谢谢认可

无敌哥 牛逼了个皮

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册