FastApi使用自定义异常抛出
在使用FastApi进行web开发的时候,在控制器方法中可以使用return向http请求返回数据,但如果在控制方法中添加一些统一的Depends判断,比如判断用户的token是否过期,而要在这个过期的模块中直接返回http结果的话,使用return没有处理,只能使用raiseHttpException,但使用raiseHttpException有两个问题,一是raiseHttpException抛出的状态码基本不是200状态码。不过可以使用raiseHTTPException(status_code=200)来指定状态码为200,但还有一个问题就是使用raiseHTTPException抛出的异常会使...[>>…]
FastApi输出mysql结果TypeError: Object of type datetime is not JSON serializable
使用Fastapi框架读取mysql数据库,将查询结果直接输出json的时候报错: File"c:anaconda3libjsonencoder.py",line179,indefault raiseTypeError(f'Objectoftype{o.__class__.__name__}' TypeError:ObjectoftypedatetimeisnotJSONserializable 排查发现mysql中的datetime类型字段,通过pymysql.cursors查询得到的结果集dict中此字段并不是一个字符串,而是一个 <classdatetime.datetime>对象,格式如下:datetime.datetime(2020,11,15,12,11,21)此此对其进行json处理就会报错Type...[>>…]
Ubuntu下python报错ModuleNotFoundError: No module named 'apt_pkg'的解决
某台新服务器拿到手之后登录上去执行很多操作都报错:ModuleNotFoundError:Nomodulenamed'apt_pkg';包括apt-getupdate操作等。此问题出现的原因多是服务器上的python版本混乱导致的,而某个python版本又缺少对应版本的apt_pkg模块从而引发这个错误。 问题解决的思路。首先排查当前使用的python和python3的版本,我一般在服务器上都会统一这两个版本;第二查找当前服务器上的apt_pkg模块的版本。apt_pkg模块放在python目录下的dist-packages目录下。过程如下: #查看...[>>…]
FastApi接口文档/docs中静态资源文件修改为本地文件
FastApi可以直接生成接口文档,但生成的接口页面中引用的是外网的资源,包括favicon.png文件和js,css文件,引用如下: <linktype="text/css"rel="stylesheet"href="https://cdn.jsdelivr.net/npm/swagger-ui-dist@3.30.0/swagger-ui.css"> <linkrel="shortcuticon"href="https://fastapi.tiangolo.com/img/favicon.png"> <title>FastAPI-SwaggerUI</title> </head> <body> <divid="swagger-ui"> </div> <scriptsrc="https://cdn.jsdelivr.net/npm/swagger-ui-di...[>>…]
FastApi:This event loop is already running问题
在进行fastapi代码的测试时遇到问题:RuntimeError:Thiseventloopisalreadyrunning,执行代码内容如下: #python代码 fromfastapiimportFastAPI importuvicorn #如下为后面解决方法中添加的 #importnest_asyncio #nest_asyncio.apply() app=FastAPI() @app.get("/") asyncdefhome(): return{"fromfastapi!"} if__name__=='__main__': uvicorn.run(app=app,host="0.0.0.0",port=8000) 详细报错如下 #报错如下: File"D:Anaconda3libasynciobase_events.py",line592,inrun_until_complete self._check_running() File...[>>…]
Python高性能Web框架FastApi及其安装使用
FastAPI是一个高性能Web框架,性能有多高,据说与NodeJS和Go相当。如其名,FastAPI主要用于构建API。特别是其在接口开发的同时自动生成交互式api接口文档,可以直接在文档中进行接口调试,非常方便。另外FastApi是一个很新的python框架,最低要求python3.6版本。框架主页:https://fastapi.tiangolo.com/Github主页:https://github.com/tiangolo/fastapi框架安装很简单,#安装fastapi框架pipinstallfastapi#安装serverpipinstalluvicorn安装之后我们去新建一个main.py文件,引入Fastapi框架...[>>…]
服务器python调用的版本被变更导致ImportError: No module named
某次点开发现:http://house.04007.cn/网站的数据不更新了,命令行下执行更新以及查看日志发现执行python脚本时报错:importMySQLdbImportError:NomodulenamedMySQLdb,这个错误即是显示找到不到python下面的MySQLdb模块,但这个MySQLdb模块早已安装,之前这个业务也一直是正常跑着,未进行什么改动。先来解决问题吧: 因为之前我确实已经使用pip安装了MySQLdb模块,通过pip查看我已经安装的python模块列表(查看已安装python模块列表可以使用piplist命令,也可以使...[>>…]
python读取txt文本文件-批量更改mysql数据库中一批用户的用户名的python脚本保存
做一个简单的事:使用python读取一个txt文件,里面存储着N行用户id,需要一行行读取后再读取另一个存储用户昵称的txt文件,判断昵称是否有重复,如果没有重复就将数据库中的当前uid用户的昵称进行更换。使用python按行读取文本内容以及全部一次读取文本的实现方法如下: #按行读取方法1: f=open("data.txt","r") #读取第一行内容,包括换行符,可使用line[:-1]去掉换行符号,也可以使用.strip()来实现。 line=f.readline() line=line[:-1] #line=line.strip() whileline: line=f.readline()...[>>…]
python代码制表符与空格混用报错unindent does not match any outer indentation level
在修改了jenkins发布代码之后,执行上线的过程中出现报错:IndentationError:unindentdoesnotmatchanyouterindentationlevel,我当时一看也是奇了怪了,我根本没有过多的修改代码,而且看代码也没有任何的问题,不过这个报错也很明显是缩进的问题,于是我再对着代码认真查看,但缩进上仍是正常的。 [workspace]$/bin/sh-xe/opt/modules/tomcat/temp/hudson7601023210302035638.sh +fabdevelopmentdeploy Traceback(mostrecentcalllast): File"/opt/modules/python2.7/lib/python2.7/site-pac...[>>…]
基于python(web.py框架)开发的一个高铁小站-适合python初学者练习的小站小型python源码下载
之前为了练习python,使用web.py开发了一个高铁小站:中国高铁地图(通过编辑各城市高铁站的经纬度数据,并在地图上通过线路连续实现动态展示中国高铁地图)线路越粗,设计时速越高,目前最高350KM/h。这个小站没有什么特别的,但是对于一个python初学者而言,这是一个非常容易入手学习python的代码,整个小站代码不多,但所有MVC都包括,并且是一个很有意思的内容。我已附上sql文件。包括全国各主要城市的经纬度数据表。在后台管理里也做了很多的工作,原来是开发一个很完整的先编辑完整的高...[>>…]