Flask GAE应用程序给出错误

时间:2016-10-10 09:49:47

标签: python google-app-engine flask jinja2

我创建了一个在pythonanywhere上工作正常的烧瓶应用程序但是当我在谷歌应用引擎上部署它时,它给出了错误http://aapkatool.appspot.com/

这是我的代码

if ($? == -1) {
    print "failed to execute: $!\n";
}
elsif ($? & 127) {
    printf "child died with signal %d, %s coredump\n",
        ($? & 127),  ($? & 128) ? 'with' : 'without';
}
else {
    printf "child exited with value %d\n", $? >> 8;
}

这是我的app.yaml代码

from flask import Flask, request, session, redirect,url_for,render_template,flash,abort
import jinja2
import os
jinja_environment = jinja2.Environment(autoescape=True,
    loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')))

app = Flask(__name__)
app.config["DEBUG"] = True
@app.route('/', methods=['POST', 'GET'])
def emi():
  if request.method == 'POST':

    p =int(request.form['enternumber1'])
    r=float(request.form['enternumber2'])
    R=(r/12)/100
    N =int(request.form['enternumber3'])
    Dp =int(request.form['enternumber4'])
    P=p-Dp
    B=(1+R)**N
    I=(B)/(B-1)

    EMI1 = (P) * (R) * (I)
    EMI="%.2f" %(EMI1)
    TAP1=EMI1*N
    TAP="%.2f" %(TAP1)
    TI=TAP1-P
    TI="%.2f" %(TI)



    return render_template('index.html', EMI=EMI,TAP=TAP,TI=TI,P=P,r=r,N=N,Dp=Dp)
  return render_template('index.html')

这里是initialize.py代码

application: aapkatool
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /.*
  script: initialize.app

libraries:
- name: jinja2
  version: "2.6"

- name: markupsafe
  version: "latest"

这是完整的错误

from google.appengine.ext.webapp.util import run_wsgi_app

from main import app

run_wsgi_app(app)

由于

2 个答案:

答案 0 :(得分:0)

http://kk268.pythonanywhere.com/emi-calchttp://aapkatool.appspot.com/的两个部署中都定义了calculate功能吗?我在浏览器中看到的唯一错误是:

(index):145 Uncaught ReferenceError: calculate is not defined
onclick @ (index):145

我不知道calculate函数的定义位置。

答案 1 :(得分:0)

我不确定为什么你甚至都有initialize.py文件。它看起来不像你需要它。 google.appengine.ext.webapp包文档声明它适用于已弃用的Python 2.5环境,并且您正确地使用Python 2.7。

  1. app.yaml的脚本处理程序改为指向main.app
  2. 删除initialize.py
  3. 重新部署或更好地在本地测试您的代码,以便您无需重新部署即可查看确切的错误代码。如果仅在部署的版本上发生,请进入logging area of the Cloud Console并展开失败的请求,以查看需要修复的错误代码和问题代码。
  4. 可以找到使用Flask的示例初始项目here,该项目也在Getting Started docs for App Engine with Python中引用。另外,如果您还没有,请获取local development server running