我正在自学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文件(没有此类文件或目录)。我应该在哪里保存文件,以便程序可以找到它? 谢谢!
答案 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'
有了它,您可以快速检查该文件是否确实存在,如果看到的话它不存在或不应该存在。