无法 运行 烧瓶认证
can't running flask authentification
我尝试使用 python、SQLAlchemy 和 Flask 实现身份验证应用程序。我找到了https://www.digitalocean.com/community/tutorials/how-to-add-authentication-to-your-app-with-flask-login-fr。
但是在我定义 set FLASK_APP=project
和 set 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'
初始化.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
你有想法吗?
您可以按照以下步骤进行安装(Linux):
创建一个新文件夹并转到您的文件夹路径:
$ mkdir myproject
$ cd myproject
安装虚拟环境并创建一个名为 venv 的新虚拟环境:
$ pip install virtualenv
$ virtualenv venv
激活你的 venv :
$ source venv/bin/activate
现在安装 Flask!
$ pip install Flask
如果完成,请在您的目录中创建一个名为 proj.py 的新 python 文件:
proj.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
我尝试使用 python、SQLAlchemy 和 Flask 实现身份验证应用程序。我找到了https://www.digitalocean.com/community/tutorials/how-to-add-authentication-to-your-app-with-flask-login-fr。
但是在我定义 set FLASK_APP=project
和 set 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'
初始化.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 你有想法吗?
您可以按照以下步骤进行安装(Linux):
创建一个新文件夹并转到您的文件夹路径:
$ mkdir myproject
$ cd myproject
安装虚拟环境并创建一个名为 venv 的新虚拟环境:
$ pip install virtualenv
$ virtualenv venv
激活你的 venv :
$ source venv/bin/activate
现在安装 Flask!
$ pip install Flask
如果完成,请在您的目录中创建一个名为 proj.py 的新 python 文件: proj.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