Neste artigo é ensinado a importar o django 1.0 apartir de um arquivo zip usando o zipimport. Mas a nossa intenção aqui é fazer o mesmo sem a necessidade do zipimport. Abaixo será mostrado como.
A versão 0.96 (padrão até então no GAE) têm em seu built-in template tags como if, for, etc.. bem limitadas ao contrário da versão 1.1 ou superior.
É preferência de muitos usar {% if x == y %} do que {% ifequal x y %}, os operadores deixam a sintaxe mais perto do padrão usado em outras línguas,
Eu não uso todos os recursos disponibilizados do django no GAE, uso apenas o recurso de template e suas derivações. Já que o GAE nos oferece um framework bem poderoso para trabalhar em cima de sua plataforma.
Ainda uso um método mostrado neste artigo para importar o django por meio do zipimport. Realmente funciona, mas pra mim
Fuxicando aonde não devia
Então vamos por a mão na massa e descobrir como carregar as outras versões. Abaixo o código usado para importar o django 1.1 com seus respectivos comentários. (caso tenha lido o artigo que ensina a importar com zipimport terá mais familiaridade com o código)
import os import logging # Verifica se o script está sendo executado no appengine if os.environ.has_key('SERVER_SOFTWARE') and os.environ['SERVER_SOFTWARE'].lower().startswith('google'): # desinstala o django atual. for k in [k for k in os.sys.modules if k.startswith('django')]: del os.sys.modules[k] # remove os caminhos que dão referência ao django for k in [k for k in os.sys.path if k.find('/django-')]: del os.sys.path[os.sys.path.index(k)] # injeta o caminho do django 1.1 no sys.path os.sys.path.insert(0, '/base/python_runtime/python_lib/versions/third_party/django-1.1/') os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' # Informativo indicando que os passos acima foram realizados logging.info('O módulo do django foi mudado')
Aqui um exemplo de tudo funcionando e seu código fonte.
Att, Gilson Fabiano.
Nenhum comentário:
Postar um comentário