Использование хранилища данных App Engine вне main.py - PullRequest
0 голосов
/ 02 марта 2011

Я пытаюсь использовать хранилище данных 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 голосов
/ 02 марта 2011

Да, вы можете получить доступ к хранилищу данных из других скриптов. Вам не нужно добавлять к ним обработку запросов, которая может остаться в вашем основном скрипте. Например, вы можете сделать что-то вроде этого:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...