【发布时间】:2021-04-17 05:16:24
【问题描述】:
我已经用 Flask 编写了我的第一个 Python API 项目,现在正尝试将它部署到 Netlify。
网上搜索发现需要使用Flask-Frozen生成静态网站。 不确定我做的是否正确,因为我的项目是 API 项目而不是网站项目,所以我可能不应该使用 Flask-Frozen(FF)?
但如果我仍然可以使用 FF 为我的 API 项目生成静态网站,这是我的项目:
--
- app.py
- 迷宫解算器
- mazeapi.py
这里是app.py
from flask_frozen import Freezer
from mazesolver import mazeapi
# Call the application factory function to construct a Flask application
# instance using the development configuration
# app = mazeapi()
# Create an instance of Freezer for generating the static files from
# the Flask application routes ('/', '/breakfast', etc.)
freezer = Freezer(mazeapi)
if __name__ == '__mazeapi__':
# Run the development server that generates the static files
# using Frozen-Flask
freezer.run(debug=True)
mazeapi.py
import io
from mazesolver.solver import MazeSolver
from markupsafe import escape
from flask import Flask, flash, request, redirect, send_file
from werkzeug.utils import secure_filename
ALLOWED_EXTENSIONS = { 'png', 'jpg', 'jpeg' }
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 5 * 1024 * 1024
@app.route('/maze/<mazename>')
def maze(mazename):
return 'maze 4 %s' % escape(mazename)
每当我跑步时:
python app.py
我收到了这个错误:
Traceback (most recent call last):
File "app.py", line 10, in <module>
freezer = Freezer(mazeapi)
File "/home/winstonfan/anaconda3/envs/maze/lib/python3.7/site-packages/flask_frozen/__init__.py", line 98, in __init__
self.init_app(app)
File "/home/winstonfan/anaconda3/envs/maze/lib/python3.7/site-packages/flask_frozen/__init__.py", line 108, in init_app
self.url_for_logger = UrlForLogger(app)
File "/home/winstonfan/anaconda3/envs/maze/lib/python3.7/site-packages/flask_frozen/__init__.py", line 588, in __init__
self.app.url_default_functions.setdefault(None, []).insert(0, logger)
AttributeError: module 'mazesolver.mazeapi' has no attribute 'url_default_functions'
【问题讨论】:
标签: python flask flask-frozen