Запуск приложения Python flask с wsgi и пассажиром

#python #flask #wsgi #namecheap

#python #flask #wsgi #namecheap

Вопрос:

Пытаюсь получить простой один файл ( passenger_wsgi) Приложение Python Flask, работающее на NameCheap.com .

passenger_wsgi.py:

 import imp # I added this line (imp)
import os
import sys
sys.path.insert(0, os.path.dirname(__file__))
"""
# This is what the cPanel created by default:
# Commented out for now, see below this function
def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    message = 'It works!n'
    version = 'Python %sn' % sys.version.split()[0]
    response = 'n'.join([message, version])
    return [response.encode()]
"""
# This is what I added:
wsgi = imp.load_source('wsgi', 'main.py')
application = wsgi.app
#app = wsgi.app
  

main.py:

 import flask
appy = flask(__name__)
application = appy
@appy.route('/')
def main():
    return "<h1>Beginning03</h1>"
if __name__ == '__main__':
    appy.run(debug=True)
  

журнал ошибок:

 App 332651 output: File "main.py", line 2, in <module>
App 332651 output: appy = flask(__name__)
App 332651 output: TypeError
App 332651 output: 'module' object is not callable
  

Идеи? Я полагаю, что моя проблема связана с неправильным использованием объектов «application» и «appy».
Да, я довольно новичок в Python 🙂

Комментарии:

1. from flask import Flask; app = Flask(__name__) Вы можете использовать любое другое имя, кроме app .

2. Клаус, спасибо тебе! Означает ли это, что мне нужно везде менять «appy» на «app»? К вашему СВЕДЕНИЮ: везде, где вы видите «appy» прямо сейчас, у меня раньше было «app» с такой же ошибкой.

3. Я вижу, вы отредактировали свой комментарий. Спасибо! Я хочу быть уверен, что понимаю. Вы хотите сказать, что мне нужно изменить appy = Flask ( name ) на «app = Flask …», но сохранить «appy» везде еще?

4. Нет, ваш импорт и Flask должны быть изменены. Но я * рекомендую придерживаться app , это типичное название для приложения Flask, вы, кажется, не были уверены в названии.

5. Значение заглавных букв имеет значение.