导航

flask-script的简单使用

Posted on 2021-11-22 23:01  SC515  阅读(158)  评论(0)    收藏  举报

1、Flask-Script介绍
Flask-Script的作用是可以通过命令行的形式来操作Flask。
Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设
置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任务;使得脚本和系统分开;

pip install flask-script 安装

2、Flask-Script基本使用

在一个在flask项目中,新建一个新的test_command.py,其中的test_command功能函数我们希望通过命令来运行

from flask_script import Manager
from shopping.main import app

# 第一步:初始化
manager = Manager(app)


# 第二步:通过命令执行
@manager.command
def hello():
    print('命令执行成功')

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

在命令中执行

 3.Flask-Script案例

需求:通过命令直接在数据库中创建一个用户

建立:数据库连接配置config.py文件

HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'test2'
USERNAME = 'root'
PASSWORD = 'root'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)

SQLALCHEMY_DATABASE_URI = DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = False

主程序app.py

from flask_script import Manager
import app  #此处是导入从已经建立好的app对象文件
from flask_sqlalchemy import SQLAlchemy
import config  #导入配置文件config.py

app.config.from_object(config)
db = SQLAlchemy(app)

manager = Manager(app)


class User(db.Model):
    __tablename__ = 't_user'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    uname = db.Column(db.String(50), nullable=False)
    pwd = db.Column(db.String(50), nullable=False)


@manager.option('-u', '--username', dest='uname')
@manager.option('-p', '--password', dest='pwd')
def create_user(uname, pwd):
    user = User(uname=uname, pwd=pwd)
    db.session.add(user)
    db.session.commit()
   print('添加成功')
if __name__ == '__main__': manager.run()

在命令中执行