개발/2020 프로젝트

django_ 당신의 학교를 공유하다. 유니-쉐어(Uni-Share)

송디 2019. 11. 26. 16:09

부경 메이커톤에 나갔던 아이디어인 유니-쉐어를 정교하게 만들어 보려고 한다.

센서를 통해 직접 자물쇠로 문을 여는 센서부와 사용자들이 사용하는 웹 사이트 부분으로 나눤다.

django를 통해 웹사이트를 만들어보려고 한다.

 

웹사이트 제작에 앞서 django를 공부해보자.

https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/

 

Django Tutorial Part 6: Generic list and detail views

이 튜토리얼은 LocalLibrary website에 책과 저자의 목록과 세부 페이지를 추가 하여 확장할 것입니다. 이 글에서 우리는 제네릭 클래스-기반 뷰(generic class-based views)에 대해 배울 것이며, 그것이 일반적인 사용 사례를 위해 작성해야 하는 코드들을 줄이는 방법을 보여줄 것입니다. 우리는 또한 URL 처리에 대해 더 세부적으로 알아볼 것이며, 기본 패턴 매칭(basic pattern matching)을 수행하는 방법을 보

developer.mozilla.org

이 사이트를 보고 공부중이다. 

하지만 Django Tutorial Part 6: Generic list and detail views 에서 정체되었다. 

books의 상세페이지를 만드는데 url 오류가 계속 뜬다.

get_absolute_url을 이용하여 경로를 가져와야 하는데 가져오지 못한다. 계속 None이라고 뜬다. 

 

도저히 get_absolute_url을 사용하기 힘들어 <a href ="{% url "book-detail" book.pk %}를 이용해서 해결하였다. 

 

 

* 웹호스팅 문제에서 heroku에 push가 되지 않는다? (Command "python setup.py egg_info" failed with error code 1 )

_ psycopg2-binary파일을 설치해주고 requirement.txt에서도 psycopg2를 psycopg2-binary로 바꾸어 주었다. 

참고 : https://stackoverflow.com/questions/56830570/error-command-python-setup-py-egg-info-failed-with-error-code-1-in-tmp-pip-i

* 호스팅 서버가 실행되지 않는다?(Invalid HTTP_HOST header: 'murmuring-savannah-40704.herokuapp.com'. You may need to add 'murmuring-savannah-40704.herokuapp.com' to ALLOWED_HOSTS.)

- setting.py에서 Allowed host 에 heroku 주소를 적어줘야 한다. 그 때 작은 따옴표('')안에 넣어줘야 제대로 작동한다. 

* 한가지 꿀팁을 발견했다. 가상머신 환경에서만 진행할 경우, 리눅스 환경에 익숙치 않을때 불편함이 있고 크롬을 사용하기 힘들다. 그래서 가상환경의 네트워크 환경이 NAT일 경우, 같은 네트워크 망을 공유하기 때문에 따로 포트포워딩을 하지 않아도 확인이 가능하다. 

  - django setting.py 스크립트에서 ALLOWED_HOSTS = ['가상환경에서의 내부 IP']를 입력한다. 

  - 터미널에서 python manage.py runserver 0.0.0.0:8000 을 입력하다. 

  - 내 PC 크롬에서 가상환경의 내부IP를 입력하여 확인하다. 

 

 

 

현재 라즈베리 파이와 아두이노 작업중이다. (참조: https://micropilot.tistory.com/2869)

 즈베리 파이와 아두이노 시리얼 통신은 성공했다. 라즈베리 파이에 데이터베이스를 구축해 웹서버로 이용할 예정이다. 

대충 이런식으로 흐름이 전개될 것이다. 

일단 AMP를 설치하자. phpmyadmin을 설치하는 과정중에 에러가 났다. 

 - mysql 비밀번호 설정이 되어 있어서 문제였고,

 - apache가 제대로 구축이 되어있지 않았다. 

(https://askubuntu.com/questions/668734/the-requested-url-phpmyadmin-was-not-found-on-this-server)을 통해서 해결.

 

php를 이용하여 mysql과 연결하였다. 이제 DB 정보를 가져와서 아두이노로 보낼 수 있는지 테스트를 해봐야 한다. 

https://gnam.tistory.com/13

 

 

 아두이노에서 라즈베리를 따로 거치지 않고 바로 서버에 접근하는게 좋을꺼 같아 esp8266 칩을 샀다. esp8266은 wifi 통신 모듈이다. 원래는 esp8266이 설치된 wemos d2 r2를 샀는데 고장나서 새로 샀다. 고장 났다고 판단을 한 것은 전문가 분들도 그 모듈을 이용하지 못하였는데서 나온 결론이다. esp8266을 하는데 이것도 지금 잘 안된다. 펌웨어를 해주고 새로 핀을 맞춘다음 at 명령어를 시리얼 모니터를 통해 치는데 실패다. 

 현재는 보드 설정을 잘못해줘서 그런게 아닌가 싶어 다시 해보는 중이다. 

728x90