美文网首页
17. Flask-Script扩展命令行

17. Flask-Script扩展命令行

作者: Devops海洋的渔夫 | 来源:发表于2019-12-12 23:43 被阅读0次

    介绍

    在Django中启动服务的时候,可以使用python manage.py runserver 或者 python manage.py shell,那么Flask能否也执行该类的扩展命令行呢?

    下面来看看。

    Flask-Script扩展

    Flask-Script 的引入以及使用:

    # 安装flask_script
    pip3 install flask_script
    
    # 引入flask_script
    from flask_script import Manager   # 启动命令的管理类
    
    # 创建flask的app应用对象
    app = Flask(__name__)
    
    # 创建Manager管理类的对象
    manager = Manager(app)
    
    # 通过管理对象来启动flask
    manager.run()
    

    通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。

    完整示例代码

    from flask import Flask
    from flask_script import Manager   # 启动命令的管理类
    
    # 创建Flask的app应用
    app = Flask(__name__)
    
    # 创建Manager管理类的对象
    manager = Manager(app)
    
    # index视图函数
    @app.route("/index")
    def index():
        return "index page"
    
    if __name__ == '__main__':
        # app.run(debug=True)
        # 通过管理对象来启动flask
        manager.run()
    

    使用命令行启动flask

    启动Flask应用不仅仅可以通过app.run()方法中传参以及启动,通过flask_script可以通过python hello.py runserver 来启动服务,如下:

    指定IP和端口号命令行启动flask

    还可以指定IP和端口号的启动方式,如下:

    $ python3 09_flask_script.py runserver --help
    usage: 09_flask_script.py runserver [-?] [-h HOST] [-p PORT] [--threaded]
                                        [--processes PROCESSES]
                                        [--passthrough-errors] [-d] [-D] [-r] [-R]
                                        [--ssl-crt SSL_CRT] [--ssl-key SSL_KEY]
    
    Runs the Flask development server i.e. app.run()
    
    optional arguments:
      -?, --help            show this help message and exit
      -h HOST, --host HOST
      -p PORT, --port PORT
      --threaded
      --processes PROCESSES
      --passthrough-errors
      -d, --debug           enable the Werkzeug debugger (DO NOT use in production
                            code)
      -D, --no-debug        disable the Werkzeug debugger
      -r, --reload          monitor Python files for changes (not 100% safe for
                            production use)
      -R, --no-reload       do not monitor Python files for changes
      --ssl-crt SSL_CRT     Path to ssl certificate
      --ssl-key SSL_KEY     Path to ssl key
    

    我们还可以通过--help来查看参数。

    默认可以看到命令行只可以使用shellrunserver

    执行flask的交互shell模式

    最后再来看看启动交互式的shell,如下:

    $ python3 09_flask_script.py shell
    
    # 导入当前的应用
    In [1]: from flask import current_app
    
    # 打印当前应用的名称
    In [2]: current_app.name
    Out[2]: '09_flask_script'
    
    # 不需要导入app了,默认就可以直接使用脚本已经定义好的方法以及对象
    In [3]: app.url_map
    Out[3]:
    Map([<Rule '/index' (GET, OPTIONS, HEAD) -> index>,
     <Rule '/static/<filename>' (GET, OPTIONS, HEAD) -> static>])
    
    

    相关文章

      网友评论

          本文标题:17. Flask-Script扩展命令行

          本文链接:https://www.haomeiwen.com/subject/ebmzbctx.html