📜  在 Flask 中创建自定义命令

📅  最后修改于: 2022-05-13 01:55:15.561000             🧑  作者: Mango

在 Flask 中创建自定义命令

本文围绕如何在flask中创建自定义命令展开。每次使用flask run运行flask 时,run 实际上是一个命令,它启动在flask 配置文件中称为run 的函数。同样,如果您曾经使用过flask migrate之类的东西,那么您可能熟悉flask DB 迁移或升级。要创建这样一个在后端执行某些操作的手动命令,我们将遵循一些步骤 -

如何在 Flask 中创建自定义命令?

第 1 步:命令是使用两个主要库创建的——flask 的 click 和 with_appcontext 库。现在让我们创建一个名为“ flask create ”的命令,它应该启动一个数据库并在该数据库中创建一个简单的表

import click
from flask.cli import with_appcontext

click是flask 用来在命令行上创建这些命令的库。

第 2 步:添加数据库配置 –

from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI']="sqlite://db.sqlite3"

第 3 步:然后让我们创建一个简单的表,如下所示:

class MyTable(db.Model):
    id = db.Column(db.Integer, primary_key=True)

所以这个表显然不会做任何事情,它只有一列,因为本文的目的是演示如何创建一个命令,所以无论何时你想首先创建一个命令,你都可以使用装饰器@click.command (name='create') (这里参数名称的值告诉您要创建的自定义命令的名称)。

@with_appcontext() – with_appcontext 将所有应用程序信息放在此函数中,因此该函数被引用包含在应用程序中。

第 4 步 –让我们创建所需的文件

Python3
# import required libraries
from flask import Flask
import click
from flask.cli import with_appcontext
from flask_sqlalchemy import SQLAlchemy
 
# initialize flask app
app = Flask(__name__)
 
# initialize Database configuration
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://db.sqlite3'
 
# create Database
db = SQLAlchemy(app)
 
# add table to Database
class MyTable(db.Model):
    id = db.Column(db.Integer, primary_key=True)
 
# create command function
@click.command(name='create')
@with_appcontext
def create():
    db.create_all()
 
# add command function to cli commands
app.cli.add_command(create)


在运行 Flask 创建之前 –

运行 Flask Create 后——

数据库中的表——