【问题标题】:Python Flask Frozen has no attribute 'url_default_functions'Python Flask Frozen 没有属性“url_default_functions”
【发布时间】: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


    【解决方案1】:

    我遇到了同样的问题并添加了

    url_default_functions={}
    

    到应用程序,就在之前

    if __name__ == "__main__":
    
        app.run()
    

    我想你可以把它放在后面

    app = Flask(__name__)
    

    错误发生了……但还有更多:) 似乎frozen-flask 不适用于最新的烧瓶,但我无法让任何其他版本使用它。

    你设法让它工作了吗?

    【讨论】:

      猜你喜欢
      • 2022-11-28
      • 1970-01-01
      • 2020-07-13
      • 2021-02-08
      • 2015-04-14
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      相关资源
      最近更新 更多