gpt4 book ai didi

python - 处理 Flask url 创建中的空格

转载 作者:太空狗 更新时间:2023-10-30 02:22:48 29 4
gpt4 key购买 nike

在我正在开发的 Flask 应用程序中,我使用美国州名作为 url 结构的一部分。州名是从 python 字典中提取的,该字典将州缩写与其各自的专有名称相关联,例如

state_dict = {"Alabama" : "AL", "Alaska" : "AK",...

当状态名称没有空格时,这很好。例如http://example.com/Alabama/ 但是,当相关州中有空格时,它会形成一个糟糕的 url。例如http://example.com/North%20Dakota/

我目前通过在使用状态名称创建 url 以使用类似 state=state.replace(' ', '_') 作为 中的参数时要小心来解决这个问题url_for()。然而,它很笨重而且看起来很粗糙。

如何更好地使用州名称作为 url 的一部分,而不必每次都手动修改它们?如果该解决方案也可以用于将大写字母更改为小写字母,则加分。 p>

我考虑过将状态字典修改为 url 友好的,例如north_dakota 而不是 North Dakota 但是,在创建要显示给用户的文本时也使用 dict,并且可读性很重要。

非常感谢您的宝贵时间!

最佳答案

python 最常见的模式是使用一对字典进行正向/反向查找,以往返于您的友好字典。在旁注中,通常用于字符串值的这种“url 友好”表示的术语是“slug”。

# state_slugs lets you lookup either state name or code => its slug
state_slugs = {}
# states_from_slugs lets you lookup the slug => the state name
states_from_slugs = {}

for state_name, state_code in state_dict.items():
slug = state_name.lower().replace(' ', '_')
state_slugs[state_name] = slug
state_slugs[state_code] = slug
states_from_slugs[slug] = state_name

你会把它放在它只运行一次的地方,比如可能在模块级别,或者在你的 state_dict 创建后不久。

然后访问 state_slugs['NC']state_slugs['North Carolina'] 都将返回“north_carolina”并访问 states_from_slugs[' north_carolina'] 将为反向查找返回“North Carolina”。

关于python - 处理 Flask url 创建中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8372221/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com