Учебники

TurboGears — Зависимости

Проект TurboGears содержит следующие каталоги —

  • Конфиг — Где находится настройка проекта и конфигурация

  • Контроллеры — все контроллеры проекта, логика веб-приложения

  • i018n — файлы переводов для поддерживаемых языков

  • Lib — служебные функции и классы Python

  • Модель — База данных моделей

  • Общедоступные статические файлы — CSS, JavaScript и изображения

  • Шаблоны — Шаблоны, предоставляемые нашими контролерами.

  • Тесты — набор тестов сделано.

  • Websetup — функции, выполняемые при настройке приложения.

Конфиг — Где находится настройка проекта и конфигурация

Контроллеры — все контроллеры проекта, логика веб-приложения

i018n — файлы переводов для поддерживаемых языков

Lib — служебные функции и классы Python

Модель — База данных моделей

Общедоступные статические файлы — CSS, JavaScript и изображения

Шаблоны — Шаблоны, предоставляемые нашими контролерами.

Тесты — набор тестов сделано.

Websetup — функции, выполняемые при настройке приложения.

Как установить проект

Этот проект теперь должен быть установлен. Файл setup.py уже предоставлен в базовом каталоге проекта. Зависимости проекта устанавливаются при выполнении этого скрипта.

Python setup.py develop

По умолчанию следующие зависимости устанавливаются во время настройки проекта:

  • мензурка
  • Genshi
  • zope.sqlalchemy
  • SQLAlchemy
  • перегонный куб
  • repoze.who
  • tw2.forms
  • tgext.admin ≥ 0.6.1
  • WebHelpers2
  • галдеж

После установки начните обслуживать проект на сервере разработки, введя следующую команду в оболочке —

Gearbox serve –reload –debug

Следуйте вышеупомянутой команде, чтобы служить готовым примером проекта. Откройте http: // localhost: 8080 в браузере. Этот готовый пример приложения дает краткое представление о самой платформе TurboGears.

Окно проекта

В этом проекте Hello контроллер по умолчанию создается в каталоге контроллеров как Hello / hello / controllers.root.py . Давайте изменим root.py с помощью следующего кода —

from hello.lib.base import BaseController
from tg import expose, flash

class RootController(BaseController):
   movie = MovieController()
   @expose()
   def index(self):
      return "<h1>Hello World</h1>"
		
   @expose()
   def _default(self, *args, **kw):
      return "This page is not ready"

Когда основное рабочее приложение готово, в класс контроллера можно добавить больше представлений. В приведенном выше классе Mycontroller добавлен новый метод sayHello () . Декоратор @expose () присоединяет к нему URL-адрес / sayHello . Эта функция предназначена для принятия имени в качестве параметра из URL.

После запуска сервера с помощью команды «gearbox serve» http: // localhost: 8080 . Сообщение Hello World будет отображаться в браузере, даже если введены следующие URL —

HTTP: // локальный: 8080 /

HTTP: // локальный: 8080 / индекс

Все эти URL-адреса сопоставлены с методом RootController.index () . Этот класс также имеет метод _default (), который будет вызываться всякий раз, когда URL-адрес не сопоставлен с какой-либо конкретной функцией. Ответ на URL отображается на функцию декоратором @expose ().

С помощью URL можно отправить параметр в открытую функцию. Следующая функция читает параметр имени из URL.

@expose()
def sayHello(self, name):
   return '<h3>Hello %s</h3>' %name

Следующий вывод будет отображаться в браузере как ответ на URL — http: // localhost: 8080 /? Name = MVL

Hello MVL

TurboGears автоматически сопоставляет параметры URL с аргументами функции. Наш класс RootController унаследован от BaseController. Это определяется как base.py в папке lib приложения.

Его код следующий:

from tg import TGController, tmpl_context
from tg import request

__all__ = ['BaseController']

def __call__(self, environ, context):
   tmpl_context.identity = request.identity
   return TGController.__call__(self, environ, context)

TGController .__ call__ отправляет методу Controller, на который направляется запрос.