'How to use flask_cli
How to use FlaskCLi with flask application in a virtualenv
I created a folder called app and activated the virtualenv and created an app.py
file with the following contents
from flask import Flask
from flask_cli import FlaskCLI
app = Flask('hello')
FlaskCLI(app)
@app.cli.command()
def initdb():
print ("Creating a database ")
then I used the command export FLASK_APP=app.py
and then flask run
but got the error
* Serving Flask app 'hello.py' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Usage: flask run [OPTIONS]
Try 'flask run --help' for help.
Error: While importing 'hello', an ImportError was raised:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/flask/cli.py", line 256, in locate_app
__import__(module_name)
File "/home/kali/Desktop/Hermes/hello.py", line 5, in <module>
from flask_cli import FlaskCLI
ModuleNotFoundError: No module named 'flask_cli'
this is how i installed the package
pip3 install flask-cli
Requirement already satisfied: flask-cli in ./lib/python3.9/site-packages (0.4.0)
Requirement already satisfied: click>=2.0 in ./lib/python3.9/site-packages (from flask-cli) (8.0.4)
Requirement already satisfied: Flask>=0.10 in ./lib/python3.9/site-packages (from flask-cli) (2.0.3)
Requirement already satisfied: Jinja2>=3.0 in ./lib/python3.9/site-packages (from Flask>=0.10->flask-cli) (3.0.3)
Requirement already satisfied: itsdangerous>=2.0 in ./lib/python3.9/site-packages (from Flask>=0.10->flask-cli) (2.1.0)
Requirement already satisfied: Werkzeug>=2.0 in ./lib/python3.9/site-packages (from Flask>=0.10->flask-cli) (2.0.3)
Requirement already satisfied: MarkupSafe>=2.0 in ./lib/python3.9/site-packages (from Jinja2>=3.0->Flask>=0.10->flask-cli) (2.1.0)
Solution 1:[1]
The solution is pretty simple. I don't think you need flask-cli. Try something like the code snippet below, register blueprints, initiate and migrate DB and all sorts of stuff.
from flask.cli import FlaskGroup
app = Flask(__name__)
app.debug = True
cli = FlaskGroup(app)
@app.route('/')
def index():
return 'Hello World!'
if __name__ == '__main__':
cli()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Abhay |