728x90 반응형 source-code/Django34 Blogs App 대망의 블로그 앱. 우선 CRUD 대신 Admin에서 Post를 작성하고, 이를 페이지 개념으로 보여주는 기능을 구현해볼 예정이다. 참고하고 있는 책이 바뀌었기 때문에(파이썬 웹 프로그래밍 실전편) 새로운 프로젝트를 만들었다. blogsproject 프로젝트를 만들고 그 안에 blogs 앱 생성! 이때 blogsproject의 url와 blogs앱의 url을 분리해주자. (확장성에 있어 더 유용한 방법!) blogsproject.urls.py include 이용해 야무지게 blogs앱으로 url 연결! 이제 blogs앱에서 models, ulrs, views, templates작업을 하면 된다. 1. app 생성 2. model 생성 3. urls 작성 4. 각 views & templates 작성 이제.. 2020. 12. 31. Books App _ log 만들기 행요 서비스를 개발할 때, 정말 수백 번도 넘는 에러 페이지와 마주했다. 특히 배포 환경에서 에러 페이지나 문구를 만나면... 정말로 대략 난감. 어디가 잘못되었는지를 알아야 고칠 텐데, 이를 가르쳐 주지도 않는다. 그냥 두루뭉실하게 몇백 번 에러가 났다... 고 알려주는 게 끝. 이는 배포 환경에서뿐만 아니라 개발 단계에서도 마찬가지. 이럴 때 유용하게 쓸 수 있는 log를 만들어보자. log는 쉽게 말해 python의 print라 생각하면 된다. python에서 말도 안 되는 코드를 작성하거나, syntax를 빼먹는 등의 실수를 해 에러가 나는 경우는 너무나도 빈번하다. 이때 우리는 작성한 코드의 중간중간에 print()를 넣어 현재까지의 항목이 잘 출력되고 있는가를 확인한다. django 역시 파이.. 2020. 12. 30. Books App _ home 만들기 이제 우리의 mysite 프로젝트 안에는 두 개의 앱(Books, Polls)이 존재한다. 이 두 앱을 선택해 들어갈 수 있는 home페이지를 만들어보자. 우선 home페이지는 어떠한 앱에 속한 페이지가 아닌, 프로젝트의 첫 화면이다. 그러므로 url, view, template 모두 mysite 프로젝트 폴더 내에서 작성해야 한다! urls.py 최초 url 요청이 들어올 경우('') 작동할 HomeView를 연결. views.py 이전에 썼던 TemplateView를 사용해 페이지를 띄워주자! 띄울 페이지는 home.html. context에는 앱들의 이름인 polls와 books를 담아 app_list라는 이름으로 html상에 보내주자. home.html 이전 book_index.html을 처리했을.. 2020. 12. 30. Books App _ Template 상속하기 앱을 만들다 보면 다른 페이지라도 같은 속성을 공유하는 부분이 많다. 네브바처럼 어느 페이지에 가도 변함없는 부분 말이다. 이를 만들기 위해서는 모든 페이지에 똑같은 내용을 복사 붙여 넣기... 해도 되지만. 더 좋은 방법이 있다. 위와 같은 순간을 위해 django에서는 상속 이라는 기능을 만들어뒀다. 개발자 만세! 즉 기본 틀이 되는 html(여기서는 base.html)을 만들어두면, 간단한 코드 몇 줄로 해당 html의 양식을 어디서나 쓸 수 있는 것. settings.py 이를 위해 우선 django에 templates를 연결했음을 알려줘야 한다. settings.py에서 DIRS 부분에 os.path.join(BASE_DIR, 'templates')를 적어주자. base.html 기본 틀의 뼈대.. 2020. 12. 30. Books App 전체 흐름 1. 생성했던 mysite 프로젝트 내에 books app 생성 2. model 생성 3. urls 작성 4. 각 views & templates 작성 1. 생성했던 mysite 프로젝트 내에 books app 생성 같은 project라도 기능별로 앱을 구분 지어 만드는 게 좋다. 지난번 polls앱을 만들었던 mysite 프로젝트에 books라는 앱을 만들 생각. 기본적으로 책, 저자, 출판사 정보를 담고 이들의 정보를 조회할 수 있는 앱이다. 우선 앱 별로 urls을 관리해주기 위해 polls.urls와 books.urls을 분리해준다. mysite.urls.py 우선 기본적으로 작성되어있는 mysite의 urls에 들어간다. 'books/' -> include('books.urls')) .. 2020. 12. 29. Polls App 전체 흐름 1. mysite project생성 -> polls app 생성 2. model 생성 3. urls 작성 4. 각 views & templates 작성 2. model 생성 models.py 직업, 선호, 지역을 물어볼 Question모델을 만든다. DateTimeField에 정의한 'date published'는? 이후 admin에서 보게 될 문구! 각 Question(ex 직업이 무엇인가요?)마다 해당되는 Choice(ex 독서, 축구, 등산)가 필요하다. 즉 Question모델과 Choice모델을 Foreignkey로 상호참조. 여기서 ForeignKey는 항상 다른 모델의 PK와 연결되므로, Question의 id변수까지 지정할 필요가 없다. (그냥 Question 클래스만 지정하면 됨.. 2020. 12. 28. 자잘자잘 문제들 1. TypeError: argument of type 'WindowsPath' is not iterable runserver나 migrate 등 manage.py를 실행하면 이런 에러가 뜬다. TypeError라고는 뜨는데 희한하게 작동하는 데는 별 문제가 없다. 하지만 매번 manage.py를 실행할 때마다 기다랗게 뜨는 에러코드가 보기 좋을 리 없다. 뭔지 몰라 구글에 두드려보니... 가상환경이 켜지지 않아 생기는 문제란다. venv를 activate해주기만하면 해결! 2. 글자 한줄로 표현 반응형 웹페이지를 만들면, 좁은 크기에서 강제로 글자 줄 바꿈이 일어난다. 아예 글자 크기를 작게 하는 것도 한 방법이기는 하겠지만... white-space : nowrap으로 강제 줄바꿈을 막고, overf.. 2020. 11. 3. 이전 1 2 3 4 다음 728x90 반응형