Where should I implement flask custom commands (cli)

前端 未结 3 534
暗喜
暗喜 2020-12-10 14:16

Creating custom commands in flask needs access to the app, which is generally created in app.py like this:



        
3条回答
  •  南方客
    南方客 (楼主)
    2020-12-10 14:47

    One way to achieve this would be using blueprints

    I have tested it using Flask 1.1.1, so be sure to check the documentation of the correct version that you have.

    Here is the general idea:

    1. Create one or more Blueprints in a different file, let's say it's called commands.py
    2. Then import the new blueprints and register them to your app

    ==> app.py <==

    from flask import Flask
    from commands import usersbp
    
    app = Flask(__name__)
    # you MUST register the blueprint
    app.register_blueprint(usersbp)
    

    ==> commands.py <==

    import click
    from flask import Blueprint
    
    usersbp = Blueprint('users', __name__)
    
    @usersbp.cli.command('create')
    @click.argument('name')
    def create(name):
        """ Creates a user """
        print("Create user: {}".format(name))
    

    Upon executing flask users you should get a response like the following:

    flask users
    Usage: flask users [OPTIONS] COMMAND [ARGS]...
    
    Options:
      --help  Show this message and exit.
    
    Commands:
      create  Creates a user
    

提交回复
热议问题