pythonanywhere上的Flask Mega教程的初始设置

问题描述 投票:4回答:2

[成功完成pythonanywhere flask tutorial(pa.com)之后,米格尔·格林伯格(Miguel Grinberg)招呼“ Flask Mega Tutorial”(fmt)。可悲的是,我什至没有进入“你好,世界”。这是我所做的:

在pa.com中,尝试逐字跟踪是不行的:

python3 -m venv flask

导致错误

ensurepip is not available

而且我们没有sudo访问权限。

[并没有吓到我,我认为Miguel要求我们做的就是将我们在pa.com教程(flask_app.py)的一个文件中看到的功能分发到几个文件中,这将使构建完整应用程序变得更加容易。由于pa.com已经使用flask和python 3.4设置了我的基本Web应用程序,因此无法设置虚拟环境。似乎不是一个障碍,至少起初不是。

根据fmt,在pa.com的基本目录中(pwd-> home / {username} / microblog)-这是成功生成pa.com教程页面的flask_app.py文件所在的位置-我设置apptmp目录,并按照fmt的指示创建app/__init__.pyapp/views.pyrun.py文件

点击应用程序页面(run.py是主目录中的唯一文件)会在页面上生成未处理的异常。

将名称更改为flask_app.py(这似乎是pa.com在flask安装中所期望的名称)会产生相同的错误。

将flask_app.py代码的内容修改为:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
  return "working from flask_app.py"

从应用程序成功生成输出,而在名为run.py的文件中具有相同代码的情况下,会产生相同的未处理异常错误。

行:

from app import app在run.py和views.py和from app import views中的__init__.py

所有人都让我纳闷...这个“应用程序”模块从哪里来?但是除了对这个问题感到困惑之外,没有其他关于如何从这里开始的想法。有什么建议么?真的很想在pa.com上进行设置并完成本教程/书。

感觉就像我缺少基本的东西,但不确定是什么。

python flask pythonanywhere
2个回答
6
投票

[第一个规则是:don't use app.run() on PythonAnywhere-这是run.py试图做的。这对于您自己的PC很好,但是在PA上会导致错误。可以在该文件中放文件,但不要尝试在wsgi配置中从该文件导入。

相反,您只需要导入flask app变量,Miguel会把它放入app/__init__.py(这有点令人困惑,一个名为app的变量,一个名为app的文件夹,但是我们可以处理它!)

为此,您需要将contains app文件夹添加到sys.path中。导入时,还需要将应用程序变量“重命名”为application

# assuming we have /home/myusername/microblog/app/__init__.py:
path = '/home/myusername/microblog'
if path not in sys.path:
    sys.path.append(path)

# now we can import the app variable from the app folder's __init__
# and rename it to application
from app import app as application

更多信息:brief guide to flask on pythonanywhereguide to debugging imports and sys.path problems in your pythonanywhere wsgi file


0
投票
from microblog import app as application

这是我的解决方案。

最好的问候

© www.soinside.com 2019 - 2024. All rights reserved.