장고 버튼이벤트로 파일실행 질문드립니다.

조회수 3795회

안녕하세요, 간단한 질문이 있어서 글을 드립니다. 장고로 간단한 웹개발을 하고 있는데 버튼클릭시 페이지 이동없이 python파일을(이미 작성해놓은 파일입니다.) 실행하고 싶습니다. 혹시 어떤 방법을 공부해야 이 같은 기능을 동작하게 할 수 있을까요?

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    django에서 python 파일을 어떻게 실행하냐고 물어보셨는데요, 놀라운 사실을 하나 알려드리자면, 아주 원칙적으로 말해서는, django가 렌더링한 웹뷰에서 눌리는 모든 버튼은 결국 python 파일을 실행하는 것(이거나 파이썬 파일이 실행된 결과)입니다.

    그러니까 어떤 버튼에 이런 링크를 달고

    <a href="/do-something" class="button">뭔가 하기</a>
    

    views.py에 대충 이런게 정의돼 있으면

    import magician
    
    def doSomething(request):
        magic = magician.doMagic(request)
        return HttpResponse(magic)
    

    "뭔가 하기" 버튼을 눌렀을 때, (이미 작성되어 있는) magician이라는 (파이썬) 패키지의 doMagic()이 실행되면서, 뭔가 magic이 웹브라우저에 나올 겁니다.

    그리고 만약 그 magic의 내용이 다음과 같다면:

    <script>alert('Presto!'); window.history.back();</script>
    

    "뭔가 하기" 버튼을 눌렀을 때는 "Presto!"라는 경고창이 뜬 다음 다시 원래대로 돌아올 겁니다.

    핵심은 특정 HTTP 요청이 들어왔을 때 특정 스크립트를 실행하도록 하고, 필요하면 그 결과를 HTTP 응답으로서 돌려주면 된다는 것입니다. a href 방식으로 실제 이동이 일어나는 것이 꺼림직하다면 버튼이 클릭되었을 때 GET /do-something으로 AJAX 요청을 하도록 하면 되겠지요. 예시가 좀 안 좋기는 한데 설명은 됐으리라고 생각합니다. 한번 곰곰이 생각해 보세요.

    • 답변 너무 너무 감사드립니다^^ 바로 도전해보겠습니다! ilalf 2019.10.29 15:45
    • 믿고 보는 엽토군님의 글 👍 박기선 2019.10.29 17:43

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)