擅长:python、mysql、java
<p>我创建了一个名为<code>NestedBlueprint</code>的类来破解它。</p>
<pre><code>class NestedBlueprint(object):
def __init__(self, blueprint, prefix):
super(NestedBlueprint, self).__init__()
self.blueprint = blueprint
self.prefix = '/' + prefix
def route(self, rule, **options):
rule = self.prefix + rule
return self.blueprint.route(rule, **options)
</code></pre>
<p>这是我的基本文件,其中包含蓝图:<code>panel/__init__.py</code></p>
<pre><code>from flask import Blueprint
panel_blueprint = Blueprint(PREFIX, __name__, url_prefix='/panel')
from . import customize
</code></pre>
<p>这是包含嵌套蓝图的特定/嵌套文件:<code>panel/customize.py</code></p>
<pre><code>from rest.api.panel import panel_blueprint
from rest.api.util.nested_blueprint import NestedBlueprint
nested_blueprint = NestedBlueprint(panel_blueprint, 'customize')
@nested_blueprint.route('/test', methods=['GET'])
def test():
return ':)'
</code></pre>
<p>你可以这样打电话:</p>
<pre><code>$ curl http://localhost:5000/panel/customize/test
:)
</code></pre>