Pull to refresh

Google App Engine: шаблоны и статика (css, js, картинки)

Reading time 2 min
Views 3.2K
В предыдущем посте было рассказано, как создать простейший проект на GAE + Django. Сейчас давайте попробуем подключить к проекту шаблоны Django и поддержку статических файлов — таблиц стилей, скриптов и картинок.

Наш Django проект будет называтся dvk, и содержать приложение main. В папке приложения создаем каталог для шаблонов templates:
dvk/
main.py
app.yaml
    dvk/
    manage.py
    settings.py
    urls.py
      main/
      __init__.py
      models.py
      views.py
        templates/



Чтобы среда исполнения смогла найти файлы шаблонов, нужно прописать путь к папке шаблонов в файле настроек проекта settings.py.
import os
ROOT_PATH = os.path.dirname(__file__)

TEMPLATE_DIRS = (
  ROOT_PATH + "/main/templates",
)


Теперь можно создать файл шаблона main.html в папке шаблонов. Наш шаблон не будет делать ничего сверх полезного :) Просто скажем браузеру «Hello world!»
Hello world!


Для вывода страницы создадим процедуру-контроллер в файле views.py и привяжем её к обработке запроса главной страницы сайта в urls.py
#dvk/dvk/main/views.py
from django.shortcuts import render_to_response

def index(request):
  return render_to_response(«main.html»)


#dvk/dvk/urls.py
from django.conf.urls.defaults import *
urlpatterns = patterns("",
  (r"^$", «dvk.main.views.index»),
)


Теперь можно протестировать наше приложение — dev_appserver.py dvk
Откройте браузер с адресом 127.0.0.1:8080/ и у вас отобразится «Hello world!» :-)

Чтобы Google App Engine обрабатывал статические файлы, нужно в файле настроек GAE приложения включить в секцию handlers параметр static_dir:
application: dvk
version: 1
runtime: python
api_version: 1



handlers:
— url: /static
static_dir: static

...


Параметр url указывает, по какому адресу будут доступны файлы, а значение параметра static_dir — имя и расположение папки. В нашем примере она располагается в корне проекта и имеет имя static. Теперь в шаблонах можно обращаться к статическим файлам, например для загрузки таблицы стилей:
link href="/static/main.css" type=«text/css» rel=«stylesheet»
или рисунка
img src="/static/logo.gif"

Использованные материалы:
Django on Google App Engine: Templates and static files
Google App Engine — Configuring an App

Кросс-пост с моего блога
Tags:
Hubs:
+22
Comments 1
Comments Comments 1

Articles