noli
V2EX  ›  Flask

初学 Flask,如果不想把所有的 app route 写在一个文件里面,应该怎么做?

  •  
  •   noli · May 27, 2015 · 11484 views
    This topic created in 4030 days ago, the information mentioned may be changed or developed.
    譬如说,不同的功能模块自己定义不一样的路径,不要都写在 app.py 里面。
    9 replies    2016-02-22 12:46:56 +08:00
    zeayes
        1
    zeayes  
       May 27, 2015
    blueprint
    sirgod
        2
    sirgod  
       May 27, 2015
    用blueprint吧
    crazyxin1988
        3
    crazyxin1988  
       May 27, 2015
    可以单独 views.py 放 route
    如果再多 可以view包
    或者 blueprint
    noli
        4
    noli  
    OP
       May 27, 2015   ❤️ 1
    非常感谢以上回复。最后找到了 blueprints 是怎么用的。

    总结一下,我正在做一个 restful 的 api server。

    `app.py` 里面 是这么初始化的。

    ```
    from app.v0.likes import likes

    def configure_app():
    flask_app = Flask(__name__)
    flask_app.register_blueprint(likes, url_prefix='/api/v0/likes')
    return flask_app
    ```

    然后 `likes.py` 里面就可以自己定义各种 url 了

    ```
    from flask.blueprints import Blueprint


    likes = Blueprint('likes', __name__)


    @likes.route('/<comic_id>', methods=['POST'])
    def likes_comic_post(comic_id):
    pass
    ```

    这样访问路径就是 `/api/v0/likes`
    loading
        5
    loading  
       May 27, 2015 via Android
    我有好多个都还是单文件,没空重构,不停有新改进…这是有多懒!
    loading
        6
    loading  
       May 27, 2015 via Android
    @noli 希望更多的朋友能在问题解决后讲一下,方便后人。
    赞!
    wodesuck
        7
    wodesuck  
       May 27, 2015   ❤️ 1
    如果不是很大的应用可以参考这篇,blueprint稍显太重量了
    http://flask.pocoo.org/docs/0.10/patterns/packages/
    把app写在app.py里,views里面import app,然后app.py的最后import一下views。
    shajiquan
        8
    shajiquan  
       May 28, 2015
    用 tornado 啊……
    wizardforcel
        9
    wizardforcel  
       Feb 22, 2016 via Android
    装饰器是返回函数的函数,外层函数的参数就是装饰器的参数,内层函数的参数是被壮士的函数。

    app.route(pattern)(handler)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5832 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 02:22 · PVG 10:22 · LAX 19:22 · JFK 22:22
    ♥ Do have faith in what you're doing.