美文网首页
开始学fastapi

开始学fastapi

作者: 米洛丶 | 来源:发表于2021-07-17 20:07 被阅读0次

    大家好,这里是米洛,一个想和大家一起分享测试开发相关的技术,面试经验和成长经历的博主!

    欢迎大家关注我的公众号: 测试开发坑货

    FastApi简介

    官网地址: https://fastapi.tiangolo.com/zh/

    FastApi是最近(具体啥时候开始我也不知道)很火的一个Python web框架,其实我对他了解也不够多,那咱们来看看他的官方文档吧。

    image

    基本上可以瞅到几个关键字,一马当先的就是快。那么她有多快呢,这边写到了Go,我本身呢是个go语言使用者,身上随身带个if err != nil,很合逻辑吧!

    其他的咱们都可以不用看,那都是虚的,其实我就想知道这玩意有多。是不是真的和他标榜的那样,和go肩并肩。

    试水

    所以我开始了自己的一次尝试,昨天晚上我特意搭建了一个FastApi服务,跑了跑。虽然我本身没用过django,但是大概也知道django的全面,各个组件应有尽有,简直就是精装修,拎包入住即可。那FastApi呢?测试开发干货群的大佬们形容他是毛坯中的毛坯,意思是啥组件都需要自己写,核心库比不上Flask多,更别说django了,django,yyds!

    但是我本身对于新鲜事物还是很好奇的,所以就忍不住体验了一把。如果这是一篇测评文章的话,那我的测评进度可能才到5%,不过就算是这样,我也觉得FastApi应当是一款不错的web框架。

    爱之初体验

    • 安装fastapi
    pip install fastapi
    
    • 安装uvicorn
    pip install uvicorn
    
    • 新建一个main.py
    from typing import Optional
    
    from fastapi import FastAPI
    from pydantic import BaseModel
    
    
    class Item(BaseModel):
        name: int
        description: Optional[str] = None
        price: float
        tax: Optional[float] = None
    
    
    app = FastAPI()
    
    
    @app.post("/items/")
    async def create_item(item: Item):
        return item
    
    
    

    整体风格有点像Flask,所以上手比较快。这个可能也是我想试试的原因之一。上面的class定义了接受的参数,以往我们用flask接受参数的话一般用request.get_data()或者get_json(),其实我写惯了go之后还是很不习惯的,因为我还是认为对象字典好使,而且这个item对象实现了dict()方法,也可以随时转为dict。说句实话,这点确实方便。

    image
    • 在main.py同级目录启动服务
    uvicorn main:app --reload
    

    --reload参数指的是热更新部署,意思是可以在代码发生变动的时候自动重启服务,使得代码生效

    方便还是挺方便的。

    看看控制台

    image

    长的是喜欢的样子!假设我更新下代码:

    image

    可以看到服务自动reload了。这点还挺方便的~

    计划

    计划是把现有的Flask改为FastApi,趁着项目还小,行动起来。有一起学习的小伙伴们,麻烦加我一下!我们一起学!如果不想学的就帮我点个赞吧,希望你不要不识抬举!(狗头保命)

    To Be Continued

    相关文章

      网友评论

          本文标题:开始学fastapi

          本文链接:https://www.haomeiwen.com/subject/qrawpltx.html