繁体   English   中英

如何使用 flask 运行主文件?

[英]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 runimport这个文件, 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并使用名称为appFlask()实例

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM