gunicorn服务器gunicorn_conf.py常用配置详解
gunicorn配置可通过gunicorn启动命令行中设定,也可通过配置文件指定。使用配置文件更加方便。不过今天在配置gunicorn_conf的日志配置时碰到了access_log_format无效,gunicorn的日志配置相关参数有4个,分别是accesslog,access_log_format,errorlog,loglevel。accesslog:访问日志路径,同nginx的access_log;accesslog='/logs/gunicorn.access.log'accesslog='-'#记录到标准输出,不会输出文件 #设置记录访问信息的日志的格式,如下使用: access_log_format='%(h)s%(l)s%(u)s%(t)s' acc...[>>…]
FastAPI项目uvicorn-gunicorn-fastapi服务端docker容器的平滑重启
在部署FastAPI项目至服务器时,会涉及到代码更改之后服务器端的重启问题,使用nginx服务器时-sreload就可以完成热加载,同样使用tiangolo/uvicorn-gunicorn-fastapi作为python项目的服务器端环境时也可以实现。 gunicorn服务,只需要向其发送HUP信号,即可实现平滑reload。tiangolo/uvicorn-gunicorn-fastapi项目在运行的时候会先加载gunicorn_conf.py配置文件,可能的路径有如下,默认优先使用第3个:1./app/gunicorn_conf.py存在即加载2./app/app/gunicorn_conf.py...[>>…]
python常用时间验证及日期时间戳转换
python年月日日期验证、python年月日时间转换成时间戳、python时间戳转换年月日时间格式及示例代码如下: #python年月日日期验证 fromdatetimeimportdatetime defvalidate(datechar): try: #%Y-%m-%d格式验证 returndatetime.strptime(datechar,'%Y-%m-%d') #%Y-%m-%d%H:%M:%S格式验证 returndatetime.strptime(datechar,'%Y-%m-%d%H:%M:%S') exceptValueError: returnFalse #python年月日时间转换成时间戳 importtime defdate_to_stamp(date,flag=0): datechar=(date+'00:00:00')ifnotflagelsedate+'23:5...[>>…]
FastApi关闭接口文档、隐藏部分接口以及关闭schemes
FastApi框架可以直接生成自带的接口文档,但在使用的时候我们会碰到如下的真实需求。1.测试环境提供接口文档并测试,但是线上环境不能暴露这些信息。2.某些模块中我们可能有的方法不想暴露出来。3.页面中显示的Schemas作用并不大,有时不如不展现。怎么处理?FastApi提供了一些方法。1.要关闭接口文档,FastAPI在对象实例化的时候可以传递docs_url和redoc_url两个参数,用以配置这两个接口地址的自定义,同时也支持直接传None用以表示关闭接口方文档,如下: fromfastapiimportFastAPI #关闭接口文档 app=FastAPI(doc...[>>…]
FastAPI框架文件上传的处理-client使用postman
使用FastAPI处理文件上传,文件上传Content-Type必须使用multipart/form-data,因为python服务端必须要安装python-multipart模块。另外在postman客户端,需要在body中选择form-data,在下面的key输入框右边鼠标停留(会出现一个下拉选择file/text),选择file表示这是个文件域,从而右边可以上传文件。此时header中会自动生成Content-Type:multipart/form-data;boundary=<calculatedwhenrequestissent>项,不需要我们手动配置。 #python安装python-multipart模块 $pipinstallpython-mult...[>>…]
Python字符串string方法大全及使用方法[2]
#返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度width的新字符串 rjust(width,[,fillchar])#返回一个原字符串左对齐,并使用fillchar填充至长度width的新字符串,fillchar默认为空格。 ljust(width[,fillchar])#返回长度为width的字符串,原字符串右对齐,前面填充0zfill(width) #以指定字符串作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串join(seq)#根据str给出的表(包含256个字符)转换string的字符,要过滤掉的字符放到deletechars参数中translate(table,deletecha...[>>…]
Python字符串string方法大全及使用方法[1]
#将字符串的第一个字符转换为大写capitalize()#返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格。center(width,fillchar) #返回str在string里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数count(str,beg=0,end=len(string)) #以encoding指定的编码格式编码字符串,如果出错默认报一个ValueError的异常,除非errors指定的是'ignore'或者'replace'encode(encoding='UTF-8',errors='strict')#检查字符串是否以obj结束,如果beg或者end指定则检查指定的范围内是否以...[>>…]
使用Anaconda3安装的spyder双击不启动无反应及docker logs查看实时日志
因为spyder报错,于是就把它关了,但发现之后双击spyder就没有反应了,在进程中也找不到这个进程在跑,在cmd命令行中执行spyder发现有提示Spyderisalreadyrunning,这真是一个BUG。如果也有提示如果要新开一个实例可以使用--new-instance选项,再打开一个spyder。网上有说需要安装pyqt5,我这里并没有安装就可以使用--new-instance,应该不需要安装。不过使用发现用--new-instance来启动spyder,那么这个cmd窗口就不能关闭,一关spyder就停了。 $spyder Spyderisalreadyrunning.Ifyouwanttoop...[>>…]
fastapi框架python的WEB环境常需要安装的模块及requirements.txt
运行pythonWEB环境,搭建fastapi需要安装很多的模板,比如uvicorn,pymysql等等,都需要进行安装。在安装模块的时候很容易因为模块名和要安装的关键词不一致而报错无法进行,安装dotenv的时候还会碰到。ERROR:Commanderroredoutwithexitstatus1:pythonsetup.pyegg_infoCheckthe...,这时还不能直接使用pipinstalldoten。建议这时检查是否同时安装了Python-dotenv和dotenv这两个,它们会引起冲突。试着先卸载dotenv,再卸载python-dotenv,然后再安装 $pipinstalluvicorn Successfullyinstalledh...[>>…]
FastAPI框架对请求参数的接收验证Path, Query, Body
FastAPI框架自带了对请求参数的验证,包括在路径中的参数、?请求的参数以及Body中的参数,使用Path提取和验证路径参数;使用Query提取和验证?请求中的参数,使用Body将参数让客户端由body(默认application/json方式)传入。示例如下: #示例python代码 fromfastapiimportFastAPI,Path,Query,Body app=FastAPI() #通过get方式在URL路径中接收请求参数 @app.get("/items/{item_id}") asyncdefread_root1(item_id:int=Path(...,gt=0)): return{"item_id":item_id} #虽然是通过post方式提交请求...[>>…]