我正在尝试在我的应用程序中使用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'
答案 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