1 回答
![?](http://img1.sycdn.imooc.com/54586870000183e302200220-100-100.jpg)
TA贡献1824条经验 获得超6个赞
如果您有数百个静态 .htm 文件,我想手动编写 Flask View 文件会非常非常乏味。:-(
幸运的是,您可以使用 Python 读取文件列表并为您编写更多 Python 代码和 View.py 文件!:-)
将以下代码放入与 HTM 文件相同的文件夹中的文件(例如)“view_builder.py”中,然后从该文件夹中的 cmd 提示符执行它:(python3 view_builder.py)
import glob
# start a file for the Flask Views
view_file = open("view.py", "a")
# first write the View file header with Flask imports
fileline = "from flask import Flask, redirect, url_for, render_template, request, session, flash, Response, jsonify" + "\n\n"
view_file.write(fileline)
fileline = "app = Flask(__name__)" + "\n"
view_file.write(fileline)
fileline = "app.config['SECRET_KEY'] = 'hello'" + "\n"+ "\n"
view_file.write(fileline)
# assuming all views will have the same name as original HTM file
# filetype may be case sensitive?
for file in glob.glob("*.HTM"):
# split file into filename and filetype
fileparts = file.split('.')
# build the app route and view def() with just the filename (no need for filetype)
fileline = "@app.route('/" + fileparts[0] + "')" + "\n"
view_file.write(fileline)
fileline = "def " + fileparts[0] + "():" + "\n"
view_file.write(fileline)
# use the whole file name (with filetype) for the template file
fileline = " return render_template('" + file + "')" + "\n"+ "\n"
view_file.write(fileline)
# View.py file footer
fileline = 'if __name__ == "__main__":' + "\n"
view_file.write(fileline)
fileline = ' app.run(debug=True)' + "\n"
view_file.write(fileline)
view_file.close
添加回答
举报