Запустите приложение flask с python вместо flask run - PullRequest
0 голосов
/ 02 августа 2020

Я пытаюсь запустить приложение flask с помощью команды «python app.py » вместо «flask run ».

Моя цель - запустить приложение на сервере cpanel, и почти каждый учебник требует, чтобы приложения вызывались с использованием метода «python».

Вот моя структура папок:

  • проект
    • webapp
      • init .py
      • шаблоны
      • stati c
      • auth. py
      • main.py
    • app.py <-------------- Я хочу, чтобы это вызывалось с помощью python вместо flask запустить команду вне папки </li>

Вот мой 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

Я новичок ie в flask, любая помощь приветствуется

1 Ответ

2 голосов
/ 03 августа 2020

Вставьте вызов create_app в конец init.py:

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 на продакшене для лучшего мониторинга c трафика. Порт по умолчанию также 5000, так что вы можете включить его. Для лучшей читаемости вы должны явно указать его.

Затем назовите его

python webapp/init.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...