Python字符串string方法大全及使用方法[2]以及FastApi关闭接口文档、隐藏部分接口、关闭schemes的实现
一、Python字符串string方法大全及使用方法[2]
1. Python字符串方法列表
#返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
rjust(width,[, fillchar])
#返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
ljust(width[, fillchar])
#返回长度为 width 的字符串,原字符串右对齐,前面填充0
zfill (width)
#以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
join(seq)
#根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
translate(table, deletechars="")
#创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
maketrans()
#类似于 find()函数,不过是从右边开始查找.
rfind(str, beg=0,end=len(string))
#类似于 index(),不过是从右边开始.
rindex( str, beg=0, end=len(string))
#截掉字符串左边的空格或指定字符。
lstrip()
#删除字符串字符串末尾的空格.
rstrip()
#在字符串上执行 lstrip()和 rstrip()
strip([chars])
#把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
replace(old, new [, max])
#以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
split(str="", num=string.count(str))
#按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
splitlines([keepends])
#检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
startswith(substr, beg=0,end=len(string))
#返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
swapcase()
2. 以上字符串方法使用程序示例
#python字符串方法示例
def test_string():
print("test".rjust(10, '-'))
#out: ------test
print("test".ljust(10, '-'))
#out: test------
print("test".zfill(10))
#out: 000000test
print("-".join(["a","b",'c',"d"]))
#out: a-b-c-d
# 制作翻译表, 即一个一对一的对应关系
bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
# 转换为大写,并删除字母o,第二个参数表示要删除的字符,可用于多重替换
print(b'runoob'.translate(bytes_tabtrans, b'o'))
#replace第三个参数控制次数
str = "this is string example....wow!!!"
print (str.replace("is", "was", 3))
print("127.0.0.1".split("."))
#out:['127', '0', '0', '1']
print("yes,it is.".startswith("yes"))
#out: True
二、FastApi关闭接口文档、隐藏部分接口以及关闭schemes
FastApi框架可以直接生成自带的接口文档,但在使用的时候我们会碰到如下的真实需求。
1.测试环境提供接口文档并测试,但是线上环境不能暴露这些信息。
2.某些模块中我们可能有的方法不想暴露出来。
3.页面中显示的Schemas作用并不大,有时不如不展现。
怎么处理?FastApi提供了一些方法。
1. 关闭FastAPI接口文档
FastAPI在对象实例化的时候可以传递docs_url和redoc_url两个参数,用以配置这两个接口地址的自定义,同时也支持直接传None用以表示关闭接口方文档,如下:
from fastapi import FastAPI
#关闭接口文档
app = FastAPI(docs_url=None, redoc_url=None)
#开户接口文档
#app = FastAPI()
#这样并不能关闭接口文档
app = FastAPI()
app.docs_url=None
app.redoc_url=None
需要注意的是,经过我尝试,要关闭必须在实例化的时候传递参数以关闭,并不支持实例化之后来修改。实际开发过程中都是通过配置文件区分现在的运行环境是线上还是测试,所以可以在实例化FastAPI前获取配置,根据配置来进行传参以实现线上关闭接口文档,测试环境启用接口文档。
2. 关闭FastAPI的部分接口
如何关闭部分接口?或者说不显示这些接口,要隐藏这部分接口,我们只需要在路由配置上添加一个参数,include_in_schema=False 即可。
@app.post('/adminpass', include_in_schema=False)
def mod_adminpass(data: data):
pass
3. 关闭Schemas
如何关闭Schemas,我真觉得Schemas没有什么用处,就像是这个接口文档真的没有其它什么东西可以展示的,然后加一些这个东西放在下面似的。反正没有人看。我找了找资料,以及查看了BaseModel的一些代码,目前还没有找到怎么快速关闭Schemas的办法,在fastapi的官方文档上也没有找到这类信息: https://fastapi.tiangolo.com/tutorial/sql-databases/?h=+schemas#create-initial-pydantic-models-schemas 欢迎知道的朋友评论回复。
4. 本篇文章的相关评论
Level : 1. User:us20210331203356-618 Time:2021-03-31 20:35:22
请问第3点你找到方法了吗
Level : 2. User:us20210402185306-708 Time:2021-04-02 18:54:24
[007]没有找到关闭的方法,但可以隐藏,另一篇文章里有。也有用户评论有其它方法,可看看。文章ID:955
Level : 3. User:us20230419113144-139 Time:2023-04-19 13:12:05
在 fastapi 源代码里边 fastapi/lib/site-packages/fastapi/openapi/utils.py 里边修改 if components: pass # output["components"] = components
Level : 4. User:us20230425160702-499 Time:2023-04-30 02:04:08
swagger_ui_parameters={"syntaxHighlight.theme": "arta", "defaultModelsExpandDepth": -1}