flask
komut flask.cli.FlaskGroup
ile oluşturulan bir Click arayüzüdür. Kendi grubunuzu oluşturun ve fabrika işlevini iletin. Kabuklara nesne eklemek için app.shell_context_processor
kullanın.
from flask import Flask
from flask.cli import FlaskGroup
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def create_app(script_info=None):
app = Flask(__name__)
db.init_app(app)
...
@app.shell_context_processor
def shell_context():
return {'app': app, 'db': db}
return app
cli = FlaskGroup(create_app=create_app)
@cli.command
def custom_command():
pass
if __name__ == '__main__':
cli()
dosyanızı yerine flask
komutunu çalıştırın. Tıklama arayüzünü fabrikanızı kullanarak alacaksınız.
FLASK_DEBUG=1 python app.py run
İdeal olarak, bir giriş noktası oluşturmak ve env'deki paketinizi yükleyin. Ardından komut dosyasını komut olarak arayabilirsiniz. En az aşağıdaki ile bir
setup.py
dosyası oluşturun. Kendi CLI Kullanarak
from setuptools import setup, find_packages
setup(
name='my_app',
version='1.0.0',
packages=find_packages(),
entry_points={
'console_scripts': [
'app=app:cli',
],
},
)
pip install -e /path/to/project
FLASK_DEBUG=1 app run
project/
app/
__init__.py
setup.py
daha az sağlamdır yerleşik
flask
komuta.
cli
nesneniz diğer kodunuzla tanımlandığından, modül düzeyinde bir hata, yeniden yükleyicinin artık nesneyi içe aktaramayacağı için başarısız olmasına neden olur.
flask
komutu projenizden ayrıdır, bu nedenle modülünüzdeki hatalardan etkilenmez.