在main.py之外使用App Engine数据存储区

时间:2011-03-02 10:08:26

标签: google-app-engine

我正在尝试在我的应用程序中使用App Engine数据存储区,这些数据存储区位于其中一个请求处理程序页面的边界之外(例如main.py或您可以在app.yaml中指定的其他文件)。这可能吗?当我尝试运行它时,它说我的数据库模型没有与它关联的方法“put”,但是当我从连接到CGI的脚本和请求处理(如main.py或任何其他)运行它时没有问题.py文件我在app.yaml中类似地声明。您知道如何在不添加请求处理的情况下将CGI添加到这些页面中吗?谢谢!

编辑我的代码:

users.py文件:

from google.appengine.ext import db, webapp


class User(db.Model):
    email = db.EmailProperty()
    password = db.StringProperty()

main.py文件

from user import *

class CreateHandler(webapp.RequestHandler):
    def get(self):
        u = User()
        u.email = "email@email.com"
        u.password = "mypass"
        u.put()

它给了我这个错误:   文件“......... / main.py”,第75行,在get中     u.put() AttributeError:用户实例没有属性'put'

1 个答案:

答案 0 :(得分:0)

是的,您可以从其他脚本访问数据存储区。您不必向它们添加请求处理,这可以保留在主脚本中。例如,你可以这样做:

<强>的app.yaml:

- url: /.*
  script: main.py

<强> main.py:

from SectionHandlers import * # This imports classes from SectionHandlers.py

application = webapp.WSGIApplication([
    ("/section1/.*", Section1Handler), # Map requests to handlers
    ("/section2/.*", Section2Handler),
], debug=True)

<强> SectionHandlers.py:

from google.appengine.ext import db, webapp

class Section1Handler(BlogHandler):

def get(self):

    # Code using 'db' here