Разделение моделей и обработчиков запросов в Google App Engine - PullRequest
2 голосов
/ 17 марта 2009

Я бы хотел переместить мои модели в отдельный каталог, подобно тому, как это делается в Rails, чтобы сократить беспорядок в коде. Есть ли способ сделать это легко?

Спасибо, Collin

Ответы [ 2 ]

7 голосов
/ 17 марта 2009

Я предполагаю, что вы используете базовый веб-набор, а не Django или что-то необычное. В этом случае просто создайте подкаталог с названием models. Поместите сюда любые файлы Python, которые вы используете для своих моделей. Создайте также один пустой файл в этой папке с именем __init __. Py.

Затем в свой main.py или "controller" или что там у вас, поместите:

import models

вверху.

Вы только что создали пакет Python .

1 голос
/ 14 октября 2009

Брэндон отвечает тем, что я делаю. Кроме того, мне больше нравится обычай Rails по одной модели на файл. Я не придерживаюсь этого полностью, но это мой основной шаблон, тем более, что Python имеет тенденцию поощрять более простые строки кода, чем Ruby.

Итак, что я делаю, так это делаю модели комплектом:

models/
models/__init__.py
models/user.py
models/item.py
models/blog_post.py

В основные файлы .py я поместил свое базовое определение класса, а также, возможно, некоторые вспомогательные функции (модульная система Python делает гораздо более безопасным сохранение быстрых вспомогательных функций, связанных с определением класса). И мой __init__.py сшивает их все вместе:

"""The application models"""
from user import User
from item import Item
from blog_post import BlogPost

Это немного избыточно, но у меня есть много контроля над пространством имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...