zoukankan      html  css  js  c++  java
  • flask-script插件

      首先在启动Flask项目时,我们可以传不同的参数作为运行参数。但是我们只能在入口app.run()传参。这样十分的不方便。Flask-Script 是一个 Flask 扩展,为 Flask 程序添加了一个命令行解析器。 Flask-Script 自带了一组常用选项,而且还支持自定义命令。

      自定义创建命令的方法有三种:

    from flask import Flask
    from flask_script import Manager
    from flask_script import Command
    
    app = Flask(__name__)
    
    manager = Manager(app)
    
    
    class Hello(Command):
        'hello world'
    
        def run(self):
            print('hello world!')
    
    #绑定到Hello函数
    manager.add_command('hel', Hello())
    
    if __name__ == '__main__':
        manager.run()

      执行

    (flask_blog) jeff@debian:~/PycharmProjects/flask_blog$ python script_test.py hel
    hello world!

      第二种方法

    from flask import Flask
    from flask_script import Manager
    from flask_script import Command
    
    app = Flask(__name__)
    
    manager = Manager(app)
    
    
    #绑定到Hello函数
    @manager.command
    def hi():
        print('hello world!')
    
    
    if __name__ == '__main__':
        manager.run()

      运行

    (flask_blog) jeff@debian:~/PycharmProjects/flask_blog$ python script_test.py hi
    hello world!

      当参数多个时,使用第三种方式

    from flask import Flask
    from flask_script import Manager
    
    app = Flask(__name__)
    
    manager = Manager(app)
    
    
    @manager.option('-n', '--name', dest='name', help='Your name', default='world')
    def hi(name):
        'hello world or hello <setting name>'
        print('hello', name)
    
    
    if __name__ == '__main__':
        manager.run()

      运行结果:

    (flask_blog) jeff@debian:~/PycharmProjects/flask_blog$ python script_test.py hi
    hello world
    (flask_blog) jeff@debian:~/PycharmProjects/flask_blog$ python script_test.py hi -n jeff
    hello jeff
    (flask_blog) jeff@debian:~/PycharmProjects/flask_blog$ python script_test.py hi --name jeff
    hello jeff
    (flask_blog) jeff@debian:~/PycharmProjects/flask_blog$ python script_test.py hi --name jeff1
    hello jeff1
  • 相关阅读:
    synchronized 到底该不该用?
    线上Java程序占用 CPU 过高,请说一下排查方法?
    『JVM』我不想知道我是怎么来滴,我就想知道我是怎么没滴
    Golang 实现 Redis(8): TCC分布式事务
    Golang 实现 Redis(7): 集群与一致性 Hash
    Golang 实现 Redis(6): 实现 pipeline 模式的 redis 客户端
    LSM 树详解
    uni-app subNVue 原生子窗体简单使用案例(app端)
    日计不足涓滴成河-自定义响应结果格式化器
    RTT之软件包
  • 原文地址:https://www.cnblogs.com/Jeffding/p/8728413.html
Copyright © 2011-2022 走看看