django 페이지가 반응하지 않음/계속 불러오는 중/요청이 성공했지만 이동하지 않음: 두 가지 흔한 상황
이 문제의 묘사는 비교적 두루뭉술하지만 내가 현재 만난 두 가지 상황을 보면 모두 비교적 중요하고 실용적인 것 같아서 각각 설명하려고 한다.
첫 번째: URL 구성 오류
페이지를 한 번 비켜도 제자리에서 움직이지 않는 것이 아마도 이런 상황일 것이다.
예를 들어 다음과 같은 두 개의 URL이 있습니다.
url(r'^foo/bar/', User.obama),
url(r'^foo/bar/trump/', User.trump),
foo/bar/에서foo/bar/trump/까지의 모든 요청은 아무런 효과가 없지만 각종 디버거 뷰어 서버 컨트롤러 등이'200'을 알려주고 있습니다. 모든 것이 정상입니다.새로 배운 Django의 친구가 이 실수를 범할 가능성이 높다.
결국은 웃기기도 한다. 바로 정규 표현식의 사용이 정확하지 않다는 것이다. r'^'는 시작만 제한하는 정규 표현식이고 끝을 제한하지 않기 때문에 모든 foo/bar/로 시작하는 URL은 Django 알고리즘의 작용으로 foo/bar/를 직접 열 수 있다. 만약에 주소 표시줄이 이미foo/bar/이면 자연히'제자리에서 움직이지 않는다'는 것이다.의심할 여지없이 Django의 알고리즘은 일치하는 결과를 찾으면 바로 나타난다. 이것은 확실히 효율적이고 모든 URL을 훑어볼 필요가 없다. 그러나 이것도 상기 문제를 일으켰다.
솔루션:
url(r'^foo/bar/$', User.obama),
url(r'^foo/bar'/trump/', User.trump),
끝 기호 '$' 를 더하면 Django는 완전히 일치하는 레시피를 사용해야 하며, 웹 페이지가 정상적으로 작동해야 한다.
두 번째: 새 페이지를 렌더링하는 과정에서 묘사할 수 없는 오류가 발생했습니다.
Django나 Python 코드가 잘못되면 바로 페이지에 반영되어 프로그램이 종료되는 것을 알고 있습니다.그러나 앞머리를 쓴 친구는 JS든 html이든 css든 모두 매우'포용적'인 언어라는 것을 분명히 알 것이다.간단하게 말하자면 작은 잘못은 품위를 손상시키지 않는다.만편의 잘못을 그대로 집행하다.만약 디버깅 환경에서 실행되지 않는다면, 모든 오류가 백출한 html 페이지는 '억지로' 실행될 수 있다.이 점도 좋고 나쁨이 틀림없다. 좋은 점은 말할 것도 없고, 이는 앞쪽 페이지에 높은 용착률과 호환성을 가지게 한다. 이것은 그야말로 안신입명의 근본이다.그러나 나쁜 점은 불러올 페이지에 치명적인 오류가 발생하면 오류 메시지가 나타나지 않고 엉뚱하게 불러오거나 아예 사라진다는 것이다.
이 문제를 해결하는 방법도 자연히 간단하다. 불러올 페이지를 완전히 모의하고 (매개 변수, 기호 하나하나까지 정확하게) 디버깅 환경에서 독립적으로 열어 치명적인 오류가 발생하지 않는지 확인하고, 없으면 인공적으로 검사해라.실수는 자연히 발생할 것이다.그리고 오류에 따라 복구하면 됩니다.
다음은 제가 겪은 잘못된 사례를 하나 들겠습니다.
새 페이지에서, 나는django의 템플릿 전송값을 이용하여 새로운 변수를 성명해야 한다.
var foo={{ bar|safe }}
그러나 전해진 {{{{bar|safe}}는 쉼표를 포함하는 문자열로 양쪽의 인용부호를 소홀히 했다. 결과는 의심할 여지없이 치명적인 오류를 초래했다. 페이지가 오랫동안 불러온 상태였지만 아무런 움직임이 없었다.해결 방안: 정확하게 값을 전달하거나 하면 된다.
만약 당신의 상황이 이 사례와 유사하다면, 이동하십시오.http://blog.csdn.net/pluschang/article/details/78425523
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 함수의 귀속함수는 코드의 봉인으로 다른 프로그램에 호출될 수도 있고 함수 내부에서 호출될 수도 있으며 함수 내부에서 자신을 호출하는 방식을 함수의 귀속이라고 부른다.마치 사람이 거울 앞에 서서 거울을 보는 것과 같다. 한 사람...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.