在哪里保存降价文件,以便在本地主机上显示

时间:2020-07-28 15:31:00

标签: python flask markdown

我正在自学Python,但现在还很陌生。我正在使用Flask构建API,并且试图显示使用非常简单的Flask程序在本地主机连接上编写的README.md文件的内容。这是我的代码:

import markdown
from flask import Flask
import markdown.extensions.fenced_code

app = Flask(__name__)


@app.route("/")
def index():
    readme_file = open('C:/Users/robin/PycharmProjects/vcpapiflask/venv/working_directory/aux_programs/README.md', 'r')
    md_template_string = markdown.markdown(readme_file.read(), extensions=["fenced_code"]
                                           )
    return md_template_string
if __name__ == "__main__":
    app.run(debug=TRUE)

运行此命令并检查本地主机URL时,出现内部服务错误(500),并且我的Pycharm终端说找不到README文件(没有此类文件或目录)。我应该在哪里保存文件,以便程序可以找到它? 谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定在给定传递路径的绝对路径下为什么找不到文件。但是,最好使用相对路径以使代码可移植。将README.md与您的app.py放在同一目录中。

import markdown
from flask import Flask
import markdown.extensions.fenced_code
#import pathlib
import pathlib

app = Flask(__name__)

# Then grab the app's path
app_path = pathlib.Path(__file__).parent.absolute()

@app.route("/")
def index():
    # You can then reference the file's path relative to the app's path. 
    readme_file = open(str(app_path)+'/README.md', 'r')
    ...

我已经对此进行了测试,并且不管工作目录如何,它都可以工作,因为我认为这是您面临的问题。

我收到内部服务错误(500),我的Pycharm终端说找不到README文件(没有这样的文件或目录)。

在进行此操作时,请确保app.run(debug=True)。您将获得堆栈跟踪,而不是“内部服务错误”。例如,使用上面的代码和删除的文件,我得到:

FileNotFoundError: [Errno 2] No such file or directory: '/Users/codesidian/Documents/README.md'

有了它,您可以快速检查该文件是否确实存在,如果看到的话它不存在或不应该存在。