无法运行烧瓶身份验证

时间:2021-06-23 09:00:00

标签: python flask sqlalchemy python-venv

我尝试使用 python、SQLAlchemy 和 Flask 实现身份验证应用程序。我找到了https://www.digitalocean.com/community/tutorials/how-to-add-authentication-to-your-app-with-flask-login-fr。 但是在我定义了 set FLASK_APP=projectset FLASK_DEBUG=1 之后,我尝试使用 flask run 运行我的应用程序,但出现错误:

Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not 
found in the current directory.

app.py:

from flask import Blueprint

main = Blueprint('main', __name__)

@main.route('/')
def index():
    return 'Index'

@main.route('/profile')
def profile():
    return 'Profile' 

auth.py :

from flask import Blueprint
#from . import db

auth = Blueprint('auth', __name__)

@auth.route('/login')
def login():
    return 'Login'

@auth.route('/signup')
def signup():
    return 'Signup'

@auth.route('/logout')
def logout():
    return 'Logout'

init.py :

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

# init SQLAlchemy so we can use it later in our models
db = SQLAlchemy()

def create_app():
    app = Flask(__name__)

    app.config['SECRET_KEY'] = 'secret-key-goes-here'
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'

    db.init_app(app)

    # blueprint for auth routes in our app
    from auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint)

    # blueprint for non-auth parts of app
    from app import main as main_blueprint
    app.register_blueprint(main_blueprint)

    return app

我完全遵循tuto,我使用venv 你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以按照以下步骤进行安装 (Linux):

创建一个新文件夹并转到您的文件夹路径:

$ mkdir myproject 
$ cd myproject

安装虚拟环境并创建一个名为 venv 的新虚拟环境:

$ pip install virtualenv
$ virtualenv venv

激活您的 venv :

$ source venv/bin/activate

现在安装 Flask!

$ pip install Flask

如果完成,请在您的目录中创建一个名为 proj.py 的新 python 文件: 项目.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

如果您使用像 pycharm 这样的编辑器,请打开编辑器的终端或本地终端并在下面编写代码:

$ export FLASK_APP=proj
$ export FLASK_ENV=development
$ flask run

$ flask run --host=0.0.0.0

在调试模式下,您可以这样编码:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

if __name__ == '__main__':
   app.run(host='0.0.0.0',port=8000,debug=True)

然后运行:

python proj.py