[英]How can I run the main file with flask?
我正在尝试运行此存储库的服务器(关于 oauth2): https://github.com/lepture/flask-oauthlib/blob/master/tests/oauth2/server.py
主文件如下所示:
if __name__ == '__main__':
from flask import Flask
app = Flask(__name__)
app.debug = True
app.secret_key = 'development'
app.config.update({
'SQLALCHEMY_DATABASE_URI': 'sqlite:///test.sqlite'
})
app = create_server(app)
app.run()
但是,我收到此错误:
错误:无法在模块“hello”中找到 Flask 应用程序或工厂。 使用 'FLASK_APP=hello:name' 指定一个。
我在终端中执行了以下命令:
export FLASK_APP=server.py` and
export FLASK_APP=main.py
之后,我尝试使用flask run
重新运行
同样,我收到此错误:
错误:无法在模块“main”中找到 Flask 应用程序或工厂。 使用 'FLASK_APP=main:name' 指定一个。
试试这个代码
from flask import Flask
app = Flask(__name__)
app.debug = True
app.secret_key = 'development'
app.config.update({
'SQLALCHEMY_DATABASE_URI': 'sqlite:///test.sqlite'
})
if __name__ == '__main__':
app.run(host="0.0.0.0", port="5000", debug=True)
试试这个:
但我建议您在使用数据库之前先从基础开始。 尝试渲染 HTML 模板,使用引导程序等。你在这里运行。 无论如何,这个样板对我有用。
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
app = Flask(__name__)
# Key for Forms
app.config['SECRET_KEY'] = 'mysecretkey'
# SQL DATABASE AND MODELS
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
Migrate(app, db)
class Puppy(db.Model):
__tablename__ = 'puppies'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Text)
def __init__(self, name):
self.name = name
@app.route('/')
def index():
return '<h1>Hello Puppy!</h1>'
if __name__ == '__main__':
app.run(debug=True)
你应该直接运行它
python server.py
如果你想使用flask run
那么你必须把所有(除了app.run()
)放在if __name__ == '__main__':
因为flask run
将import
这个文件, import
将跳过里面的代码if __name__ == '__main__':
# ... other code ...
from flask import Flask
app = Flask(__name__)
app.debug = True
app.secret_key = 'development'
app.config.update({
'SQLALCHEMY_DATABASE_URI': 'sqlite:///test.sqlite'
})
app = create_server(app)
if __name__ == '__main__':
app.run()
它需要export FLASK_APP=server:app
因为你想运行文件server.py
并使用名称为app
的Flask()
实例
export FLASK_APP=server:app
flask run
因为代码使用标准名称app
所以你可以在export
时跳过它
export FLASK_APP=server
flask run
您也可以在不export
的情况下运行
flask --app server run
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.