2015-10-13 64 views
-1

Iam使用PythonAnywhere免费版尝试为应用设置小型休息服务。 Iam也使用蓝图与烧瓶试图做到这一点。 我有我的文件结构看起来像下面尝试使用bluerint将路由装饰器移出主脚本

mysite/ 
    applicaction/ 
      __init__.py, 
      models.py, 
      config.py 

flask_app.py(同一水平的mysite包)

我用flask_app.py运行如下所示的服务器。

from application import __init__ as appmain 

if __name__ == "__main__": 
myapp = appmain.getapp() 
myapp.run() 

,并在我的应用程序文件夹,可以使用“初始化 py”为建立我的“应用程序”实例与被称为“myblueprint”蓝图沿(如下图所示代码)

from flask import Flask, Blueprint 
from flask.ext.sqlalchemy import SQLAlchemy 

db = None 
app = None 
serviceblueprint = None 

def init_app(): 
    app = Flask(__name__) 
    app.config.from_object('config') 
    serviceblueprint = Blueprint('serviceblueprint', __name__) 
    app.register_blueprint(serviceblueprint) 
    db = SQLAlchemy(app) 

def get_app(): 
    init_app() 
    return app 

然后我尝试使用已导入“serviceblueprint”的service.py脚本中的已注册蓝图来定义一个简单的路由装饰器。理想情况下,像serive.py模块这样的id可以包含一个可以处理路由的类(不知道这是否可能),但是当我接触到它时不适合穿过桥。现在它的一个基本的脚本(如下图所示)

from application import serviceblueprint 

@serviceblueprint.route('/') 
def get(): 
    return "<h1>Yahoo!!!</h1>" 

不幸的是我只是得到我的时候我的主要网址加载到浏览器和一个相对通用的追踪日志,我不知道在服务器上的错误页面。它似乎至少指向我的代码中的任何东西。除了可能“ImportError:无法导入名称应用程序”,但我并没有在我的任何脚本中导入“应用程序”。

2015-10-13 09:46:59,068 :Traceback (most recent call last): 
2015-10-13 09:46:59,068 : File "/bin/user_wsgi_wrapper.py", line 134, in __call__ 
2015-10-13 09:46:59,068 : self.error_log_file.logger.exception("Error running WSGI application") 
2015-10-13 09:46:59,068 : File "/usr/lib/python2.7/logging/__init__.py", line 1185, in exception 
2015-10-13 09:46:59,069 : self.error(msg, *args, **kwargs) 
2015-10-13 09:46:59,069 : File "/usr/lib/python2.7/logging/__init__.py", line 1178, in error 
2015-10-13 09:46:59,069 : self._log(ERROR, msg, args, **kwargs) 
2015-10-13 09:46:59,069 : File "/usr/lib/python2.7/logging/__init__.py", line 1270, in _log 
2015-10-13 09:46:59,069 : record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, func, extra) 
2015-10-13 09:46:59,070 : File "/usr/lib/python2.7/logging/__init__.py", line 1244, in makeRecord 
2015-10-13 09:46:59,070 : rv = LogRecord(name, level, fn, lno, msg, args, exc_info, func) 
2015-10-13 09:46:59,070 : File "/usr/lib/python2.7/logging/__init__.py", line 284, in __init__ 
2015-10-13 09:46:59,070 : self.threadName = threading.current_thread().name 
2015-10-13 09:46:59,070 : File "/usr/lib/python2.7/threading.py", line 1160, in currentThread 
2015-10-13 09:46:59,070 : return _active[_get_ident()] 
2015-10-13 09:46:59,070 : File "/bin/user_wsgi_wrapper.py", line 126, in __call__ 
2015-10-13 09:46:59,071 : app_iterator = self.app(environ, start_response) 
2015-10-13 09:46:59,071 : File "/bin/user_wsgi_wrapper.py", line 140, in import_error_application 
2015-10-13 09:46:59,071 : raise e 
2015-10-13 09:46:59,071 :ImportError: cannot import name app 

如果有人能帮我出个人感激。我是全新的瓶子,所以显然我可能会犯一个非常简单的错误。谢谢!

+0

认为这个问题很清楚地问到。哦, –

+0

有没有人们输入堆栈跟踪数据的特定方式。我知道它看起来凌乱。 –

回答

1

如果您检查您的webapps选项卡中您当前所有托管的网站,您将看到一个wsgi.py文件。在里面,你会看到它试图从你的项目文件中导入app

请确保它能够成功完成此操作。

相关问题