zoukankan      html  css  js  c++  java
  • 测试平台系列(1) 搭建Flask服务

    搭建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:projectsgithub.comwuranxu

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

    创建项目并通过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

  • 相关阅读:
    [国家集训队]整数的lqp拆分
    来一波全套向量运算(C++)
    天哪又要搬家啦qvq
    利用输入输出流复制文件
    系统会随机给你两个日期(yyyy-MM-dd),求出两个日期的具体相差天数
    mysql中的连接操作
    java面试题集锦
    Java关于Math类的三个取整方法
    设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
    MySql5.5安装详细说明
  • 原文地址:https://www.cnblogs.com/we8fans/p/14496803.html
Copyright © 2011-2022 走看看