编程语言
首页 > 编程语言> > 在pythonanywhere上初始设置Flask Mega教程

在pythonanywhere上初始设置Flask Mega教程

作者:互联网

在成功完成pythonanywhere flask tutorial(pa.com)之后,Miguel Grinberg的“Flask Mega Tutorial”(fmt)招手.可悲的是,我甚至没有把它变成“Hello,World”.这就是我所做的:

在pa.com尝试按照fmt逐字逐句是不行的:

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} /微博) – 这是成功生成pa.com教程页面的flask_app.py文件所在的位置 – 我设置了启动app和tmp目录,并按照fmt的指示创建app / __ init__.py,app / views.py和run.py文件

点击应用页面(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.py的文件中具有相同的代码会生成相同的Unhandled Exception错误.

线条:

来自run.py和views.py中的app import app
来自__init__.py中的应用导入视图

所有这些让我想知道……这个“app”模块来自哪里?但除了被这个问题困惑之外,没有其他关于如何从这里开始的想法.有什么建议?真的想在pa.com上设置并完成本教程/书.

感觉我错过了一些基本的东西,但不确定是什么.

解决方法:

第一条规则是:don’t use app.run() on PythonAnywhere – 这就是run.py试图做的事情.这对你自己的电脑来说很好,但在PA上它会导致错误.将文件放在那里很好,但不要尝试从wsgi配置中的该文件导入.

相反,你只需要导入烧瓶app变量,Miguel让你把它放在app / __ init__.py中(这有点令人困惑,一个名为app的变量,一个名为app的文件夹,但我们可以处理它!)

为此,您需要将包含app文件夹的文件夹添加到sys.path中.您还需要在导入时将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

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

标签:python,flask,pythonanywhere
来源: https://codeday.me/bug/20190528/1167970.html