Как создать файл точки входа uWSGI для приложения-примера колбы-бутстрапа? - PullRequest
0 голосов
/ 21 сентября 2019

У меня проблемы с записью файла точки входа uWSGI, который будет загружать образец колбы-бутстрапа, так как мое приложение не имеет структуры для запуска, если name == " main ":Я просто пытаюсь использовать примеры файлов flask-bootstrap, которые имеют другой app.py Flask, где он вызывает другой файл для запуска части if name .Мой текущий файл точек входа uWSGI выглядит так:

from myproject import app

if __name__ == "__main__":
    app.run()

для обслуживания моего приложения, но я считаю, что мне может понадобиться структурировать его по-другому, так как мой файл app.py не написан таким образом.

Мой Flask app.py выглядит следующим образом:

import sys

sys.path.append(os.path.dirname(__name__))

from sample_application import create_app


app = create_app()

app.run(host='0.0.0.0')

Я изучаю этот урок: https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

хорошо, отлично.Спасибо!Я был в состоянии понять это.У меня было:

import os
import sys
from sample_application import create_app
sys.path.append(os.path.dirname(__name__))


app = create_app()

if __name__ == "__main__":
    app.run()
0 голосов
/ 22 сентября 2019

Рассмотрим /home/pi/server.py (если вы настраиваете это на Raspberry Pi)

from app import create_app

app = create_app()

Если /etc/uwsgi/apps-enabled/server включает

chdir = /home/pi
home = /home/pi/venv  # if you're using virtualenv
module = server:app

Тогда uwsgi будет знать, чтобы загрузить сервер(server.py) и ожидайте приложение WSGI в app.Flask предоставляет приложение WSGI.

И поскольку uwsgi выполняет загрузку, if __name__ == '__main__': не будет иметь значение true, поэтому, если server.py читает

from app import create_app

app = create_app()

if __name__ == '__main__':
    app.run(host='0.0.0.0')

, вы можете запустить его черезuwsgi или (если вы используете виртуальную среду) через

FLASK_APP=server.py venv/bin/flask run
...