我的烧瓶应用程序是一个名为的包app
,位于/Users/gexinjie/Codes/MyProject/xinnjie_blog
文件树是这样的
xinnjie_blog
├── app
| ├── __init__.py
│ ├── config.py
│ ├── exceptions.py
│ ├── model.py
│ ├── model_sqlalchemy.py
│ ├── static
│ ├── templates
│ ├── util.py
│ └── views
├── manage.py
我将其导出为PATHONPATH
,因此manage.py
可以导入app
echo $PATHONPATH
/Users/gexinjie/Codes/MyProject/xinnjie_blog
和出口FLASK_APP
echo $FLASK_APP
manage.py
当前目录是/Users/gexinjie/Codes/MyProject/xinnjie_blog
pwd
/Users/gexinjie/Codes/MyProject/xinnjie_blog
这里是manage.py
import click
from app import create_app
app = create_app('development')
@app.cli.command()
def initdb():
click.echo('Init the db...')
这是app.__init__.py
from flask import Flask
from .model_sqlalchemy import db
def create_app(config_name='default'):
app = Flask(__name__)
... # init
return app
但是如果我执行flask initdb
,我会收到这个错误:
Usage: flask [OPTIONS] COMMAND [ARGS]...
Error: No such command "initdb".
如果我执行flask run
,我得到
Usage: flask run [OPTIONS]
Error: The file/path provided (manage) does not appear to exist. Please verify the path is correct. If app is not on PYTHONPATH, ensure the extension is .py
为什么找不到manage.py?我该如何解决它。(实际上,当manage.py
有烧瓶应用程序时效果很好)
# manage.py
# this work well
app = Flask(__name__) # not app = create_app('development')
谢谢