URL 处理程序无法在 Google 应用引擎和 Flask 应用程序中运行
URL Handler not working in Goole app engine and flask Application
我是来问一个愚蠢的问题的,不幸的是我想不通。
我有一个使用 Flask Web 框架开发的 Google App Engine 项目。
我的项目结构是这样的(大写是目录,小写是文件):
> -PROJECT DIR
> -APP
> -API
> -HANDLERS
> home.py
> -TEMPLATES
> home.html
- flask_app.py
> app.yaml
> appengine.config.pu
在 home.py 我只是渲染 /TEMPLATES/home.html
from flask import render_template
from app.flask_app import app
@app.route('/')
def home():
return render_template('home.html')
这是 app.yaml
个文件的结构:
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: app.flask_app.app
当我开始调试并尝试访问位于 http://127.0.0.1:8080/
的本地主机而不是呈现模板时,在我看来出现以下错误 Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
app.yaml 文件有问题吗?我认为这都是正确的,甚至 url.
编辑
flask_app.py
import appengine_config
import logging
from app import app_secret_key
from flask import Flask
from flask_wtf.csrf import CSRFProtect
app = Flask(__name__)
app.config.from_object(__name__)
CSRF_PROTECT = CSRFProtect(app)
if appengine_config.GAE_DEV:
logging.warning('Using a dummy secret key')
app.secret_key = 'my_dummy_secret_key'
app.debug = True
else:
app.secret_key = app_secret_key.secret_key
您在 flask_app.py
末尾忘记了 import HANDLERS.home
这在您的应用程序中是必需的,Flask 需要知道哪些文件注册了视图或路由。
我是来问一个愚蠢的问题的,不幸的是我想不通。
我有一个使用 Flask Web 框架开发的 Google App Engine 项目。
我的项目结构是这样的(大写是目录,小写是文件):
> -PROJECT DIR
> -APP
> -API
> -HANDLERS
> home.py
> -TEMPLATES
> home.html
- flask_app.py
> app.yaml
> appengine.config.pu
在 home.py 我只是渲染 /TEMPLATES/home.html
from flask import render_template
from app.flask_app import app
@app.route('/')
def home():
return render_template('home.html')
这是 app.yaml
个文件的结构:
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: app.flask_app.app
当我开始调试并尝试访问位于 http://127.0.0.1:8080/
的本地主机而不是呈现模板时,在我看来出现以下错误 Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
app.yaml 文件有问题吗?我认为这都是正确的,甚至 url.
编辑
flask_app.py
import appengine_config
import logging
from app import app_secret_key
from flask import Flask
from flask_wtf.csrf import CSRFProtect
app = Flask(__name__)
app.config.from_object(__name__)
CSRF_PROTECT = CSRFProtect(app)
if appengine_config.GAE_DEV:
logging.warning('Using a dummy secret key')
app.secret_key = 'my_dummy_secret_key'
app.debug = True
else:
app.secret_key = app_secret_key.secret_key
您在 flask_app.py
import HANDLERS.home
这在您的应用程序中是必需的,Flask 需要知道哪些文件注册了视图或路由。