Google App Engine에서 zipimport로 새로운 Django 버전 도입
본론으로 돌아가면 GAE가 자체로 가지고 있는 django는 0.96판이다. 나는 신입생을 쫓는 족인데 1.0이 있는데 왜 안 써?공식 글은 원래django 개발판을 GAE에 어떻게 도입하는지 소개했는데 1.0에도 똑같이 적용된다. 구체적으로django를 자신의 응용 디렉터리에 압축을 풀고main.py에 몇 줄의 코드를 추가하면 0.96을 사용하지 않고 새 버전을 도입합니다. 그러나 그 글은 두 줄의 코드가 축소되지 않아서 문제가 크지 않습니다.그러나 이 방법은 좋지 않다. GAE는 1000개의 파일 수량 제한이 있기 때문에django의 파일이 너무 많고 간소화한 후에 400여 개가 있다. 만약에 나중에 자바스크립트, css 라이브러리를 도입하거나 쓸 프로그램 파일이 많으면 처리하기 어렵다.
원문을 찾을 수 없습니다. 오늘 검색할 때 공식적으로 또 한 편문장.이 나왔습니다. django 압축 패키지를 응용 프로그램 디렉터리에 넣고 zipimport로 GAE에 도입하는 것을 소개합니다.GAE는 또한 단일 파일이 1M을 초과할 수 없도록 제한하기 때문에django를 간소화해야 하며 다음 파일을 삭제하는 것을 추천합니다.
그다음에 메일을 고치는 거예요.활용단어참조
import logging, os, sys
# Google App Engine imports.
from google.appengine.ext.webapp import util
# Remove the standard version of Django.
for k in [k for k in sys.modules if k.startswith('django')]:
del sys.modules[k]
# Force sys.path to have our own directory first, in case we want to import
# from it.
if os.name=='nt':
os.unlink=lambda :None
# Add Django 1.0 archive to the path.
django_path = 'django.zip'
sys.path.insert(0, django_path)
# Must set this env var *before* importing any part of Django
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
import django.core.signals
import django.db
import django.dispatch.dispatcher
def log_exception(*args, **kwds):
logging.exception('Exception in request:')
# Log errors.
django.dispatch.dispatcher.connect(log_exception, django.core.signals.got_request_exception)
# Unregister the rollback event handler.
django.dispatch.dispatcher.disconnect(django.db._rollback_on_exception,django.core.signals.got_request_exception)
def main():
# Re-add Django 1.0 archive to the path, if needed.
if django_path not in sys.path:
sys.path.insert(0, django_path)
# Create a Django application for WSGI.
application = django.core.handlers.wsgi.WSGIHandler()
# Run the WSGI CGI handler with that application.
util.run_wsgi_app(application)
if __name__ == '__main__':
main()
이제 어플을 쓸 수 있어요.
P.S.: 이미 알고 있는 버그 중 하나입니다. 압축 파일을 사용하면 국제적으로 설정된 언어를 사용할 수 없습니다. 시간이 있으면 Google group에 보고하겠습니다.사실 이 방법은 이전과 똑같다. 단지djangopath가 다를 뿐이야.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.