강의로 돌아가기
김효진

막혔어요.

warnings.extend(checkpatternstartswithslash(pattern))
File /usr/local/lib/python2.7/dist-packages/django/core/checks/urls.py, line 68, in check
patternstartswithslash
if regexpattern.startswith('/') or regexpattern.startswith('/'):
UnicodeDecodeError: 'ascii' codec can't decode byte 0xea in position 17: ordinal not in range(128)

맨앞에 # -​- coding: utf-8 -​-를 넣었는데도 문자열 변환 에러가 생기네요.

3 개의 답변
김효진

python2에서 생기는 인코딩 에러로 보이는데 u추가해서 해결은 했는데 다른 문제가 생기네요 warnings.extend(checkpatternstartswithslash(pattern))
File /usr/local/lib/python2.7/dist-packages/django/core/checks/urls.py, line 68, in check
patternstartswithslash
if regexpattern.startswith('/') or regexpattern.startswith('/'):

-

checks/urls.py 68번째 줄에서 한글 주석이 있는 등 인코딩에러가 발생한 것 같습니다.
python3 manage.py runserver와 같이 파이썬3으로 실행해주세요.

-

redirect 이용하는 경우와 render를 이용하는 경우의 그 차이가 궁금합니다.

  • -
    제 생각에 바로 polls 함수에서 render(request, 'elections/result.html') 해도 실행은 잘 되요. 그치만 이렇게 하면 url이 /polls/1/에서 result.html 에 해당하는 페이지만 렌더링(화면만 다시 그려줌) 해주더라구요.
    -―2017.08.18 11:24
  • -
    즉, url이 /areas/미국 -> /polls/1/ 로 바뀌고 result.html 페이지가 표시되요.
    -―2017.08.18 11:24
  • -
    즉, 이번에는 url이 /areas/미국 -> /areas/미국/result 로 바뀌고 result. html 페이지가 표시되요.
    -―2017.08.18 11:24
  • -
    강의랑 똑같이 하면 HttpResponseRedirect 로 url을 다른 곳으로 변경해주고 변경된 페이지에 result.html 페이지가 표시되요.
    -―2017.08.18 11:24
  • -
    HttpResponseRedirect : URL 주소변경 , render : 화면에 html 페이지를 읽어와서 보여줌
    -―2017.08.18 11:24
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.