Python Flask学习_使用Flask-Script

Flask开发的Web服务器支持很多启动设置选项,但是只能在脚本中作为参数传递给app.run()函数。每次想要不同的启动方式都需要改动源码,不是很方便。

Flask-Script是一个Flask扩展,为Flask程序添加了一个命令解析器。Flask-Script自带了一组常用选项,而且还支持自定义命令。

一、使用pip安装

# pyCharm Terminal

pip install flask-script

二、修改源码

# manager.py
'''
用于启动程序以及其他的程序任务
'''

import os
from app import create_app, db
from app.models import User,Role
from flask_script import Manager,Shell
from flask_migrate import Migrate, MigrateCommand

app = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(app)                                                              #实例化Manager类,传入app实例作为参数
migrate = Migrate(app,db)

def make_shell_context():                                                            #定义一个函数
    return dict(app=app, db=db, User=User, Role=Role)
manager.add_command('shell',Shell(make_context=make_shell_context))                 #将函数传入Shell,再讲返回值与'shell'字符串绑定
manager.add_command('db',MigrateCommand)                                            #将MigrateCommand类与'db'字符串绑定

if __name__=='__main__':
    manager.run()                                                                    #启动方式变成manager.run()

或者直接在函数定义前,加上@manager.command装饰器

# manager.py

@manager.command
def test():
    '''Run the unittest'''
    import unittest
    tests = unittest.TestLoader().discover('tests')
    unittest.TextTestRunner(verbosity=2).run(tests)

三、运行查看可用的启动选项

运行manager.py,可以选择点击按钮运行,或者 在Terminal输入:python manager.py。效果是一样的。

运行后输出了:


可以看到positional arguments有三个选项:shell,db,runserver,就是支持的启动选项。其中db,shell都是自定义的。

四、使用启动选项

举几个使用启动选项的例子:

1.

# pyCharm Terminal

python manager.py runserver

将以调试模式启动Web服务器。相当于运行app.run(debug=True)

2.


加了 --help,就会显示runserver的帮助信息,例如其他子选项。

3.


加了--host xxx.xx.xx.xx(xxx.xx.xx.xx是计算机的外网 IP地址),这样就可以在连接互联网的电脑上访问服务器了。









猜你喜欢

转载自blog.csdn.net/bird333/article/details/80787404