公众号:uncle39py

V1

2022/02/07阅读:74主题:默认主题

flask-script(制定命令)

flask-script(制定命令)

script : 脚本

1、flask-script是一个命令行管理器,可以通过命令来启动Flask应用(替代pycharm中右键运行);

安装:pip install flask-script

# app.py(文件名)
from flask import Flask
from flask_script import Manager  # 命令行管理器

app = Flask(__name__)
manager = Manager(app)  # 封装app

@app.route('/')
def index():
    return 'hello'

if __name__ == '__main__':
    manager.run()  # 启动

命令行启动Flask应用:python app.py runserver

python app.py runserver --help查看此命令的参数,通过参数可以修改host、端口等

2、我们还可以定制flask-script命令,代码如下所示:

# app.py(文件名)
from flask import Flask
from flask_script import Manager  

app = Flask(__name__)
manager = Manager(app)

@manager.command
def welcome(name):
    print('welcome:%s' %name)
#知识点1:命令行输入python app.py welcome egg(参数),就可以执行这个定制命令,运行@manager.command所装饰的函数


@manager.option('-n','--name',dest='name') #-n代表简写,--name代表全称,dest='name'代表参数是传给形参中的name的
@manager.option('-u','--url',dest='url')
def cmd(name,url):
    print(name,url)
#知识点2:命令行输入python app.py cmd -n egg -u www

if __name__ == '__main__':
    manager.run()

活学活用:

  • django中通过命令创建超级管理员的功能,可以用flask-script定制命令来实现,通过写一个函数(用@manager.command装饰),函数里面通过input来接收外界输入的用户名,然后写到数据库中
  • 可以通过定制命令来创建数据库的表
  • 可以通过定制命令来实现把excel中的数据批量插入到数据库中(借助openpyxl),比如:python app.py insertdb --file 数据.xls --to table1

这些本质都是通过函数来实现,但是通过命令来执行函数

3、python app.py shell运行这条命令后,在命令行中会出现交互式界面,其中app.py已经被导入进来,可以在交互式界面直接使用app.py里面的属性;

分类:

后端

标签:

Python

作者介绍

公众号:uncle39py
V1