Python 3.4, Django 1.7, 그리고 페이지에 jquery mobile 1.4

 
조성욱

Python 3.4, Django 1.7, 그리고 페이지에 jquery mobile 1.4.3 사용하여 만들고 있습니다.

– view.py
@login_require(login_url=”/login”/)
def upload_view(request): # /upload 에 해당하는 뷰
……
……
form = CustomForm()
return render(request, “page.html”, {“form”:form})

def login_view(request): # /login 에 해당하는 뷰
if request.method == ‘POST’:
// login 성공시
return HttpResponseRedirect(“/upload”)

위에서 로그인을 성공하면 {Domain}/upload로 넘어가는데요..

근데 이 때
“/upload “에 해당하는 페이지가 새로 다 불러와지는게 아니고 “/login” 페이지의 뒤에 upload 페이지가 붙어버리면서 script들이 실행이 다 안되어버립니다.

혹시 이문제에 대해서 해결방법 아시는 분 계신가요?

  • Howon Song

    Console에는 자바스크립트 에러 안뜨시나요?

    조성욱

    예.. 자바스크립트도 에러가 없네요.. jquery pageshow 이벤트까지 다 잘 뜨고요

    Ki-baek Lee

    return HttpResponseRedirect(~~~) 로 해보세요

    조성욱

    그렇게 쳤어요. ㅎ 포스팅에는 빠뜨렸었네요.

django1.7 튜토리얼을 첨음부터 다시보는데 Exception occurred pro

 
김성진

django1.7 튜토리얼을 첨음부터 다시보는데
Exception occurred processing WSGI script ‘/home/vagrant/mysite/apache/django.wsgi’.
오류가나서 문의 드립니다.

프로젝트 생성 migrate후 runserver를 실행하여 It worked!화면을 보았습니다.
그후 settings.py의 시간대만 Asia/Seoul로 수정 하고
apache2 의 virtual host를 설정하였습니다.

..중략..
WSGIScriptAlias / /home/vagrant/mysite/apache/django.wsgi

..중략..

프로젝트 경로는 “/home/vagrant/mysite”이고
/home/vagrant/mysite/apache/django.wsgi 파일에

import os
import sys

path= ‘/home/vagrant/mysite/’
if path not in sys.path:
sys.path.append(path)

os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘mysite.settings’

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

와같이 입력후 아파치 리스트
브라우저를 확인하면
Internal Server Error 500에러가납니다.
이건 제가 계속 물어온 import django \n django.setup()문제인거같습니다.
url.py에서 url(r’^admin/’, include(admin.site.urls))를 주석처리하면
정상적으 It worked! 가 나옵니다.

django 튜토리얼에 있는

WSGIScriptAlias / /home/vagrant/mysite/mysite/wsgi.py
WSGIPythonPath /home/vagrant/mysite

Require all granted

이부분을 따라하면 일단 WSGIPythonPath 여기서 구문에러가 나버리고
WSGIPythonPath 를 주석처리하면 아파치 재시작은 되지만 역시나 500에러가 나버립니다.

python2.7를 사용하고있습니다.

wsgi 파일 설정이 문제인거같은데 혹시

django1.7 + apache2 + mode_wsgi 정상적으로 it work 찍으신분 있으면 설정방법좀 알려주십시요. 몇일째 해결이 안되니요.

  • 김성진

    한번 테스트 해보겠습니다

Models aren’t loaded yet. 이게 떨어지는 이유를 찾았습니다 이유만 dj

 
김성진

Models aren’t loaded yet. 이게 떨어지는 이유를 찾았습니다 이유만
django 1.7에서 만 문제가 생기내요
import django
django.setup() 이걸 안해주면 일단 로드를 못하내요

혹시 아파치2에서 저걸 쓰지 않아도 로드되게 하는 법이 있을 까요?

으핫, 1.7에 드디어 update_or_create가 추가되었군요. 어차피 해줄 거 그냥

 
박영록

으핫, 1.7에 드디어 update_or_create가 추가되었군요. 어차피 해줄 거 그냥 일찍 해주지… 여튼 이제 귀찮은 코드를 좀 줄일 수 있겠네요.

아, 물론 get_or_create와 마찬가지로 race condition에서는 보장이 안됩니다.

그냥, 코딩하다가 반가운 마음에 뻘글 써봅니다;;

django를 공부하는데 실력이 없어서그런지 걸리는게 많내요.. aws에서 apache2

 
김성진

django를 공부하는데 실력이 없어서그런지 걸리는게 많내요..

aws에서
apache2 + django + mod_wsgi를 이용하여 django를 돌리고있습니다.

연동하여 브라우저에 찍어보면 에러가나는데 에러메시지를 보면
Models aren’t loaded yet. <== 이런 메시지가 떨어집니다.
그래서 django 내장인 runserver로 돌리면 이게 또 제대로 잘작동하고 오류도없습니다. 아파치 연동하면 에러나는데 혹시 이런경험 해결하신분있으신지요?

  • 김성진

    음 제대로 한거같은데 한번 다시 살펴보겠습니다

    박보국

    최대한 심플한 환경에서 django를 구현해야하지 않을까요 ㅎㅎ. 저도 첫 시작이라서 간단한 VM환경에서 시작하고 있습니다.

    김성진

    그렇긴한데 일단 에러로그에 몇줄 먼가 나온거 보고 하나하나 수정해봐야겠내요 ^^

안녕하세요 예외처리중 exception InternalError 이걸 처리하려고하는데

 
김성진

안녕하세요 예외처리중
exception InternalError 이걸 처리하려고하는데

코드작성을 어떻게 해야될지 몰라서 질문드립니다.
메뉴얼을 봐도 샘플코드가 없어서(제가 찾지를 못하는 건지) 어떻게 작성해야될지 모르겠내요

try
except 모델함수.InternalError:
처리되는 루틴
이런식으 에러가되는데 어떻게 해야될까요?

  • Chinseok Lee

    아마도 database 관련 에러같네요. 모델의 명세대로, 컬럼이 db 단과 일치하는 지 확인해보세요.

    김성진

    이진석 아 일브러 예외일으키고 저 예외가 발생하면 해당예외가 발생시 특정페이지로 이동시키려고 하는것입니다. 그래서 try except에 적용해보려고 하는데 잘안되내요

    Chinseok Lee

    어떻게 안 되나요? 작성하신 코드를 보여주세요.

    김성진

    이진석 간단한 코드입니다..

    try:
    s_data = Board.objects.all().filter(board_id = 1)

    except Board.DoesNotExist:
    ReturnCode = 10001
    except Stage.InternalError:
    ReturnCode = “디비연결오류”

    except Stage.InternalError 이오류가나오면 리턴코드에 오류메시지를 뿌려주려는데 아에 Internal server Error가 웹사이트에 떠버리내요

    아혹시
    import django
    django.setup()
    이걸 쓰지 않으면 디비의 model을 로드하지 못하는 이유 혹시 아시나요??

    김성진

    아 setup문제는 해결했습니다.

    Sangwon Lee

    해결하셨나 모르겠네요, 어떤 exception을 raise 하시려는지는 모르겠지만 아래와 같은 아이디어로 해보시면 어떨까요?
    except Exception as e:
    if isinstance(e, MyException):
    some statements..

    김성진

    이상원 InternalError 이넘을 예외처리 하고싶어서요 문서에는 있던데
    저걸 예외처리할 코드를 잘 모르겠내요

    Chinseok Lee

    django 의 InternalError 도 Exception 이기 때문에, 발생하는 예외에 맞게 except 지정하면 처리됩니다. 발생되는 Exception 과 다른 타입으로 except 를 지정하신 것 같습니다.

    혹시 Stage.InternalError 가 아니라 Board.InternalError 가 아닌가요?

    김성진

    제가 오타가났내요
    Board.InternalError 이거인데 잘못적엇내요 ~~
    집에와서 보는데 음 역시 나 except Board.InternalError: 줄에서 오류나내요 .

    김성진

    답변 해주분들 감사합니다. 어찌어찌 해결을 했내요 깔끔하지 않지만 ㅠㅠ

django의 i18n관련하여 .. po파일들을 합쳐주는 간단한 스크립트를 만들어 보았습니

 
Ju-won Lee

django의 i18n관련하여 .. po파일들을 합쳐주는 간단한 스크립트를 만들어 보았습니다. ^^; (po전용 diff같은~)

기존에 주로 사용하는 poedit에는 서로 다른 locale파일들을 합쳐 주는 기능이 없어서 답답해서 한번 만들어 봤는데… 뭐 일단은 별 문제 없는것 같네요 ^^;;;

콘솔에 python combiner.py치시면 간단한 사용법이 나옵니다.
소스가 굉장히 러프해서 아이디어만 참고하셔도 좋을 것 같네요~

그 외로 duplicated된 메시지들을 관리할 수 있도록, 함수들을 몇개 만들어 놓긴 했는데, 소스 보고 스크립트 응용하시면 될 거 같네용~

수고하세요~ ^^