首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PythonAnywhere中的Flask找不到包含西班牙语字符的文件名

PythonAnywhere中的Flask找不到包含西班牙语字符的文件名
EN

Stack Overflow用户
提问于 2020-05-17 21:31:28
回答 1查看 26关注 0票数 0

我正在尝试建立一个网站,它有一个下载资源的页面,碰巧我的本地flask版本可以完美地找到任何文件名(当使用send_from_directory()时),但是一旦部署到PythonAnywhere,它就不能用于带有西班牙口音字符的文件名,如á

我猜这与unicode有关,但我找不到如何修复它( pythonanywhere的日志似乎没有显示任何内容,因为flask只是向用户提供了一个“找不到”页面)。

...and我真的很希望在人们下载的文件名中有这些重音(它们是anki甲板,其中一些是为了教育目的,只是在甲板名称中提供糟糕的口音是错误的)。

我的代码如下所示:

代码语言:javascript
复制
@app.route('/anki/d/<file>')
def d_anki(file):
   if file == "verbscat":
       ankideck = "[Rusca] Temps Verbals Catalans.apkg"
   elif file == "irregular":
       ankideck = "[Rusca] Verbs Irregulars Anglès.apkg"
   # ...
   else:
       return f"The file {file} wasn't found."
   return send_from_directory("./static/anki/", ankideck, as_attachment=True, cache_timeout=0)

(然后我通过<a href="/anki/d/irregular" ...>在一个按钮中链接到这个url )

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-17 21:31:28

哦,我刚刚意识到,通过在send_from_directory的参数中添加attachment_filename="Whatever I want to call it",我可以为下载的文件选择一个不同的名称。

所以我想我们可以解决这个问题(让原始文件具有简单的非重音名称,然后添加正确的名称)。

代码语言:javascript
复制
if file == "irregular":
    ankideck = "irregular.apkg"
    name = "[Rusca] Verbs Irregulars Anglès.apkg"
# ...
return send_from_directory("./static/anki/", ankideck, as_attachment=True, attachment_filename=name cache_timeout=0)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61852612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档