【问题标题】:Separate Flask `app.route` blocks [duplicate]单独的 Flask `app.route` 块 [重复]
【发布时间】:2014-11-03 14:33:50
【问题描述】:

我在Flask 中有以下routeing 函数,但是当我构建我的应用程序时,它会因为太多的链接而变得过于混乱。

如果我想将路由器分开或分组到一个单独的文件中,我应该怎么做?

@app.route('/', methods=['GET'])
def index():
    return render_template('index.html')


@app.route('/mylink', methods=['GET'])
def get_mylink():
    return render_template('mylink.html')

或者是否可以将package调整routers 的大小?例如,

import myrouter
myrouter.Run()

【问题讨论】:

    标签: python flask


    【解决方案1】:

    当我的应用程序变得笨拙时,我将路由和函数拆分到不同的文件中,但并不完全像您建议/询问的那样。

    如果您的应用遵循典型的包结构并具有例如索引和博客页面:

    /app
      /templates
        /blog.html
        /index.html
      /__init__.py
      /models.py
      /views.py
    

    那么您可以考虑将views.py 文件转换为一个名为views 的目录,并为该目录中的每组相关路由创建一个.py 文件。例如:

    /app
      /templates
        /blog.html
        /index.html
      /views
        /blog.py
        /main.py
      /__init__.py
      /models.py
    

    您只需将每组@app.route() 装饰器和相应的函数放入相应的文件中。因此,对于主页,您可以放置​​此路径和任何其他一般路径(如登录/注销)

    @app.route('/', methods=['GET'])
    def index():
        return render_template('index.html')
    

    进入views 目录中的main.py。您需要在app/__init__.pyfrom app.views import main, blog 中导入这些。并且不要忘记在视图目录中包含一个空白的__init__.py 文件。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 1970-01-01
      相关资源
      最近更新 更多