gpt4 book ai didi

python - 如何基于flask mega教程在pythonanywhere上设置Flask

转载 作者:行者123 更新时间:2023-11-29 02:16:30 27 4
gpt4 key购买 nike

我目前正在开发一个应用程序。此网络应用程序有其自己的域。最初创建时,我使用 cname 设置域和注册商,并在几个小时后成功显示“这是一个 flask 应用程序......”类似的东西。

我决定遵循 Grinberg 先生在他的书中的示例(在本地主机上完全可用)。所以我将我的个人存储库克隆到 pythonanywhere 并运行以下命令。

python manage.py db init
python manage.py db upgrade
python manage.py migrate

目前一切正常。我使用 mysql workbench 检查了 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 文件(注释掉所有内容)仍然一样。

要知道的事情:

  1. 我有一个付费帐户。
  2. 这是 pythonanywhere 上的第二个 webapp。 (第一个不是基于教程建模的,工作得很好)

编辑

我将端口从 5000 更改为 9000。它在控制台中运行。但我不能访问我的网站。我应该注释掉 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

管理.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

最佳答案

这里是 PythonAnywhere 开发者。

如果您从 PythonAnywhere 上的控制台运行 Flask 应用程序,实际上无法从其他任何地方访问它。它可能运行良好,但不会将任何请求路由到它。所以不需要从控制台运行任何东西(我猜除非你只是在测试语法错误)。

相反,您需要在“Web”选项卡上创建一个 Web 应用程序——看起来您已经完成了该操作。然后使用您似乎已经发现的 WSGI 文件进行路由。

如果您已完成所有这些操作,那么当您访问出现在“Web”选项卡上的域时(通常类似于您的用户名.pythonanywhere.com)然后你应该看到你的网站。如果您遇到错误,请查看错误日志(也从“Web”选项卡链接),这应该有助于您进行调试。

[编辑:添加从属关系]

关于python - 如何基于flask mega教程在pythonanywhere上设置Flask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38773135/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com