mic*_*ads 4 python flask pythonanywhere
在成功完成了pythonanywhere flask教程(pa.com)之后,Miguel Grinberg的" Flask Mega Tutorial "(fmt)招手了.可悲的是,我甚至没有把它变成"Hello,World".这就是我所做的:
在pa.com尝试按照fmt逐字逐句是不行的:
python3 -m venv flask
Run Code Online (Sandbox Code Playgroud)
导致错误
ensurepip is not available
Run Code Online (Sandbox Code Playgroud)
我们没有sudo访问权限.
没有被吓倒,我推断所有Miguel要求我们做的是将我们在pa.com教程(flask_app.py)中的一个文件中看到的功能分发到几个文件中,这将使得构建完整的应用程序变得更容易.由于pa.com已经使用flask和python 3.4设置了我的基本Web应用程序,因此无法设置虚拟环境.似乎并不是一块,至少一开始并不是.
根据fmt,在pa.com的基础目录(pwd - > home/{username} /微博) - 这是flask_app.py成功生成pa.com教程页面的文件所在的位置- 我设置app和tmp目录,创造app/__init__.py,app/views.py以及run.py文件的指导下FMT
点击app页面(run.py是主目录中唯一的文件)会在页面上生成Unhandled Exception.
将名称更改为flask_app.py(这似乎是pa.com对烧瓶安装的期望)会生成相同的错误.
将flask_app.py代码的内容修改为:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "working from flask_app.py"
Run Code Online (Sandbox Code Playgroud)
从应用程序生成成功的输出,而在名为run.py的文件中具有相同的代码会生成相同的Unhandled Exception错误.
线条:
from app import app在这两个run.py和views.py并
from app import views在__init__.py
所有这些让我想知道......这个"app"模块来自哪里?但除了被这个问题困惑之外,没有其他关于如何从这里开始的想法.有什么建议?真的想在pa.com上设置并完成本教程/书.
感觉我错过了一些基本的东西,但不确定是什么.
第一条规则是:不要在PythonAnywhere上使用app.run() - 这就是run.py试图做的事情.这对你自己的电脑来说很好,但在PA上它会导致错误.将文件放在那里很好,但不要尝试从wsgi配置中的该文件导入.
相反,你只需要导入烧瓶app变量,Miguel让你放入app/__init__.py(这有点令人困惑,一个名为app的变量,一个名为app的文件夹,但我们可以处理它!)
为此,您需要将包含 app文件夹的文件夹添加到sys.path中.您还需要在application导入时将"重命名"app变量:
# 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
Run Code Online (Sandbox Code Playgroud)
更多信息:pythonanywhere上烧瓶的简要指南以及调试pythonanywhere wsgi文件中的导入和sys.path问题的指南
| 归档时间: |
|
| 查看次数: |
1632 次 |
| 最近记录: |