有人尝试过基于静态文件夹代码片段的此片段flask配置吗?
代码:
import flask class MyFlask(flask.Flask): @property def static_folder(self): if self.config.get('STATIC_FOLDER') is not None: return os.path.join(self.root_path, self.config.get('STATIC_FOLDER')) @static_folder.setter def static_folder(self, value): self.config.get('STATIC_FOLDER') = value # Now these are equivalent: app = Flask(__name__, static_folder='foo') app = MyFlask(__name__) app.config['STATIC_FOLDER'] = 'foo'
就我而言,我抱怨这条线:
self.config.get('STATIC_FOLDER') = value
错误信息: Can't assign to function call
Can't assign to function call
有谁能通过Flask中的config.py文件设置static_folder?
对该片段一无所知,但是
some_function(...) = some_value
永远不是有效的Python(Python没有l值)。看起来好像config有一个类似dict的界面,所以令人反感的行应该只是
config
self.config['STATIC_FOLDER'] = value
在setter上方的getter定义中可能存在复制和粘贴错误。
我认为无论出于何种原因,你都想使用自定义路径访问静态文件夹。我希望这样做是为了更好的应用程序模块化。
这是我的应用程序文件夹结构:
instance/ core/ |_templates/ |_static/ |_views.py run.py config.py
如你所见,我的static文件夹位于该core文件夹内。
在中run.py,你可以执行以下操作:
app = Flask(__name__, static_url_path=None) if __name__ == '__main__': app.config.from_object('config') # config file has STATIC_FOLDER='/core/static' app.static_url_path=app.config.get('STATIC_FOLDER') # set the absolute path to the static folder app.static_folder=app.root_path + app.static_url_path print(app.static_url_path) print(app.static_folder) app.run( host=app.config.get('HOST'), port=app.config.get('PORT'), threaded=True )
这就是我所做的,并且效果很好。我正在使用flask0.12。