Flask应用程序可用作两个不同的应用

时间:2016-04-04 08:30:17

标签: python rest flask

我曾使用过作为管理面板和API的Flask应用程序。我的管理面板包含登录页面和一堆管理员内容。因此,我不想将其公开到互联网上。管理员面板应该只能从内部网访问,但我的API应该可以通过互联网访问。

我有两台机器。一台是本地机器,另一台将在AWS托管。问题是两台机器中的代码相同,但一台将作为API,另一台将作为管理面板。 我的主管告诉我,我可以使用" Flask蓝图"实现我想要做的事情,但我想在开始实施之前确定。

Flask蓝图可以解决这个问题,还是有其他选择?

(我想到的一件事是将API与管理面板分成两个不同的Flask应用程序。这很容易做到并解决所有问题。但我现在无法做到这一点。)

Image of what I am trying to do

1 个答案:

答案 0 :(得分:0)

您可以在蓝图上使用before_app_request,并检查您的客户端IP是以192.168还是10.0或172.16开头

from flask import abort

@blueprint_1.before_request
def check_network():
    if not request.remote_addr.startswith("192.168") or ...:
            abort(404)

编辑:根据Blueprint文档before_app_request这样的函数在每个请求之前执行,即使在蓝图之外。 改为使用before_request(它将在blueprint_1 Blueprint上的请求之前执行...我编辑了我的代码......