2010-04-15 2 views
3

Django와 Google App Engine을 처음 사용하고 OSX10.6의 샌드 박스를 GoogleAppEngineLauncher와 함께 사용하고 있습니다. OReilly "Programming Google App Engine"책의 튜토리얼에서 실행되는 기본적인 "서점"애플리케이션이 있습니다.Google App Engine 및 Django 샌드 박스 : 쉘 및 웹이 다른 데이터 저장소를 사용하고있는 것 같습니다.

다음과 같은 버그가 있습니다. 웹 인터페이스를 통해 데이터 저장소에 새 객체를 추가하면 웹 인터페이스를 통해 읽을 수 있지만 셸을 통해 데이터 저장소를 쿼리하면 존재하지 않는 것처럼 보입니다. 그 반대의 경우 : 쉘에 객체를 추가하면 쉘에서 객체를 읽을 수 있지만 웹 인터페이스에는 나타나지 않습니다.

관련 항목 : 컴퓨터를 재부팅 할 때 두 데이터 저장소에서 모든 데이터가 사라집니다.

모든 의견이나 이론을 환영합니다. 감사!

= T =

+0

장고를 돕기 위해 무엇인가 사용하고 있습니까? google-app-engine-django, django-nonrel, app-engine-patch 또는 다른 것과 같은가요? 각각에는 데이터 저장소 파일 위치를 지정하는 방법이 있습니다. – dar

+0

저는 google-app-engine-django를 사용하고 있습니다. 그 다른 것들이 무엇인지 모릅니다. – tones

답변

0

원격 API 쉘을 사용하고 당신이 당신의 컴퓨터에서 실행중인 인스턴스에서 그것을 가리키는 경우 동일한 데이터 저장소를 받아야합니다. "셸"을 통해 앱에 액세스하는 방법이 명확하지 않지만 두 번째 인스턴스를 만드는 것처럼 보입니다.

기본적으로 데이터 저장소 파일은/tmp에 생성되므로 컴퓨터를 재부팅 할 때 데이터 저장소에서 데이터가 사라집니다. dev_appserver.py를 실행할 때 다른 위치 (시스템 재부팅시 시스템이 사용자를 위해 정리하지 않음)를 지정할 수 있습니다.

+0

내 응용 프로그램의 홈 디렉토리에서 "python manage.py shell"을 실행하여 셸에 액세스하고 있습니다. – tones

+0

서버를 어떻게 실행하고 있습니까? 나는 "python manage.py runserver"가 manage.py 쉘을 사용하는 것과 동일한 데이터 저장소를 가져야한다고 생각하지만 반면 dev_appserver.py를 수동으로 실행하면 다른 데이터 저장소가 생깁니다. 이것은 또한 사용중인 도우미/패치에 따라 다를 수 있습니다. – geoffspear

+0

GoogleAppEngineLauncher 앱을 통해 서버를 실행했습니다. 대신 커맨드 라인에서 실행 해보고 쉘과 쉘이 같은 데이터 스토어를 가리키고 있는지 확인하겠습니다. – tones

0

맞아요. python manage.py은 런처와 다른 앱 인스턴스 (및 다른 데이터 스토어)로 연결됩니다. 애플리케이션과의 명령 행 인터페이스를 원할 경우 How do I activate the Interactive Console on App Engine?을 참조하거나 런처가 아닌 python manage.py runserver에서 dev 서버를 실행하고 manage.py shell을 계속 사용하십시오.

동일한 데이터 저장소 삭제로 인해 물 렸습니다. App Engine은 어떤 이유로 상점을 조심스럽게 닫아야합니다. 데이터 스토어를 디스크에 제대로 저장하려면 "중지"(또는 일반적으로 Linux의 dev_appserver.py 명령에서 실행중인 경우 ctrl-c를 누르십시오)해야합니다. 제대로 닫히기 전에 컴퓨터를 끄면 데이터 저장소가 삭제됩니다.

관련 문제