현재 응용 프로그램을 개발 중입니다. 이 웹 앱의 도메인은 이며입니다. 처음에 내가 도메인을 만들었고 cname을 사용하여 등록 기관을 설정했는데 두 시간이 지나면 성공적으로 표시되었습니다. "이것은 플라스크 응용 프로그램입니다 ..." 그런 식으로.flask megatutorial을 기반으로 pythonanyhwere에 Flask를 설정하는 방법
나는 자신의 저서 「Mr. Grinberg」의 예를 따르기로 결정했다. 그래서 개인 저장소를 pythonanywhere에 복제하고 다음 명령을 실행했습니다.
python manage.py db init
python manage.py db upgrade
python manage.py migrate
지금까지 모든 것이 괜찮습니다. 그리고 나는 mysql 워크 벤치을 사용하여 mysql 데이터베이스를 체크 아웃했다.
이제 문제가됩니다. 내가 python manage.py runserver
을 실행할 때
그것은 나에게 다음과 같은 오류가 발생합니다.
/home/username/.virtualenvs/webapp/local/lib/python2.7/site-packages
/flask_sqlalchemy/__init__.py:800: UserWarning: SQLALCHEMY_TRACK_MODIFICA
TIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning.
warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to su
ppress this warning.')
Traceback (most recent call last):
File "manage.py", line 20, in <module>
manager.run()
File "/home/username/.virtualenvs/webapp/local/lib/python2.7/site-packages/flask_script/__init__.py", line 412, in run
result = self.handle(sys.argv[0], sys.argv[1:])
File "/home/username/.virtualenvs/webapp/local/lib/python2.7/site-packages/flask_script/__init__.py", line 383, in handle
res = handle(*args, **config)
File "/home/username/.virtualenvs/webapp/local/lib/python2.7/site-packages/flask_script/commands.py", line 425, in __call__
**self.server_options)
File "/home/username/.virtualenvs/webapp/local/lib/python2.7/site-packages/flask/app.py", line 843, in run
run_simple(host, port, self, **options)
File "/home/username/.virtualenvs/webapp/local/lib/python2.7/site-packages/werkzeug/serving.py", line 677, in run_simple
s.bind((hostname, port))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
wsgi.py 파일을 사용하지 않으려 고 시도했습니다 (모든 것을 주석 처리합니다).
상황이 알아야 할 사항
- 내가 유료 ACOUNT 있습니다.
- 이것은 pythonanywhere의 두 번째 웹 응용 프로그램입니다. (첫 번째는 튜토리얼을 기반으로 모델링하고 잘 작동되지 않음)
편집
내가 9000에 5000에서 포트를 변경하고 콘솔에서 실행됩니다. 하지만 내 사이트를 방문 할 수 없습니다. wsgi 파일을 주석 처리해야합니까?
현재는 좋아하는이 같습니다
import sys
# # add your project directory to the sys.path
project_home = u'/home/username/e_orders/e_orders'
if project_home not in sys.path:
sys.path = [project_home] + sys.path
# # import flask app but need to call it "application" for WSGI to work
from manager import app as application
manage.py
import os
from app import create_app, db
from app.models import User
from flask_script import Manager, Shell, Server
from flask_migrate import Migrate, MigrateCommand
app = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(app)
migrate = Migrate(app, db)
def make_shell_context():
return dict(app=app, db=db, User=User)
manager.add_command('shell', Shell(make_context=make_shell_context))
manager.add_command('db', MigrateCommand)
manager.add_command('runserver', Server(port=9000))
if __name__ == '__main__':
manager.run()
편집 2
을 나는 위의 WSGI 구성에 다음과 같은 오류가 있습니다. 여기
오류 로그
ImportError: No module named manager
2016-08-04 17:42:39,589 :Error running WSGI application
Traceback (most recent call last):
File "/bin/user_wsgi_wrapper.py", line 154, in __call__
app_iterator = self.app(environ, start_response)
File "/bin/user_wsgi_wrapper.py", line 170, in import_error_application
raise e
ImportError: No module named manager
. 그것은이 포트가 이미 사용되었다고 말합니다. –
기본값은 port = 5000입니다. 나는 그것을 바꿀 것이고 당신에게 돌아갈 것이다. –
괜찮 으면 좋겠어. Ctrl + C를 사용하면 다른 오류가 발생한다. –