#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. Значение заглавных букв имеет значение.