使用python运行烧瓶应用程序,而不是烧瓶运行

时间:2020-08-02 18:34:47

标签: python flask sqlalchemy

我正在尝试使用“ python app.py ”而不是“ flask run ”命令来运行我的烧瓶应用程序。

我的目标是在cpanel服务器上启动该应用程序,几乎每个教程都要求使用“ python”方法调用该应用程序。

这是我的文件夹结构:

  • 项目
    • webapp
      • 初始化 .py
      • 模板
      • 静态
      • auth.py
      • main.py
    • app.py <--------------我希望使用python而不是文件夹外部的flask run命令来调用它

这是我的 init _。py文件:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager 

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

def create_app():
    
    app = Flask(__name__)
    
    app.config['SECRET_KEY'] = '9OLWxND4o83j4iuopO'
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'

    db.init_app(app)

    login_manager = LoginManager()
    login_manager.login_view = 'auth.login'
    login_manager.init_app(app)

    from .models import User

    @login_manager.user_loader
    def load_user(user_id):
        # since the user_id is just the primary key of our user table, use it in the query for the user
        return User.query.get(int(user_id))

    # 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 .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    return app

app.py是:

from webapp import app

我是烧瓶中的新手,不胜感激

1 个答案:

答案 0 :(得分:2)

在init.py结尾处插入对create_app的调用:

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

if语句避免多次调用应用程序。它只能直接调用。 Flask的默认主机是127.0.0.1(localhost)。在生产中使用0.0.0.0可以更好地监视流量。默认端口也为5000,因此要由您决定。为了提高可读性,您应该明确显示它。

然后命名

python webapp/init.py