【问题标题】:Where to save markdown file so that it displays over local host在哪里保存降价文件,以便它显示在本地主机上
【发布时间】:2020-11-18 02:35:07
【问题描述】:

我正在教自己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 文件(没有这样的文件或目录)。我应该在哪里保存我的文件,以便它可以在我的程序上找到? 谢谢!

【问题讨论】:

    标签: python flask markdown


    【解决方案1】:

    我不确定为什么给定您传递的绝对路径它无法找到您的文件。但是,最好使用相对路径以使您的代码具有可移植性。将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'
    

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

    【讨论】:

    • 哇,感谢您的详细回复。我尝试使用我的降价文件的相对路径将您添加到代码中,现在我得到了同样的错误,除了它在错误消息中显示了降价文件的完整和正确的文件路径(我已经检查了多次以确保它是实际的文件路径)。我不确定为什么会发生这种情况,但感谢您的意见。
    • 我觉得自己很愚蠢......即使我在 PyCharm 中将我的文件创建为 markdown 文件,它也作为未定义文件保存到我的计算机中。一旦我指定它是一个降价文件,一切都运行良好。非常感谢!
    猜你喜欢
    • 2014-03-13
    • 2019-10-31
    • 1970-01-01
    • 2014-01-04
    • 2012-01-26
    • 1970-01-01
    • 2012-01-22
    • 2020-07-30
    • 2010-11-01
    相关资源
    最近更新 更多