본문 바로가기

개인 스터디

(18)
Do it 웹사이트 따라 만들기 - 웹사이트 만들 준비하기, 개발 환경 준비하기 # 1-1. 우리가 알아야 할 HTML 기본 상식 HTML란? 웹에서 사용하는 문서를 만드는 언어. 브라우저를 통해 내용이 나타난다. 각 브라우저의 엔진이 HTML을 해석하고 CSS에 정의된 스타일로 화면에 배치한다. 엔진은 Webkit, Geckp. Blink로 분류된다. HTML로 만들어진 정보를 수진하여 저장하는 일을 크롤링이라 한다. 이러한 검색 엔진 최적화를 위해 콘텐츠의 구조와 의미까지 구분하여 HTML을 작성하는 것이 좋다. 태그는 검색 엔진을 최적화 하고 하나의 웹 사이트 정보를 담는 중요한 태그이다. 기본구조(자료실에서 제공) : HTML이 지켜야 할 표준을 알려주는 DTD. 모든 HTML 문서가 필요하다. : HTML의 시작을 알리며, 웹 문서 전체를 감싼다. : , 태그 그리고 CSS..
[Django] Do it 장고+부트스트랩 16주차 정리 이제 배포를 시작한다~!! 배포과정은 수정도 많이 했고, 비용때문에 끝부분은 읽어보기만 해서 그냥 생각나는 대로 정리만 함. 도커를 배웠다. 워낙 유명해서 이전에도 몇 번 사용하는 것을 본 적이 있는데, 정확히는 모르지만 가상환경과 비슷해서 내 컴퓨터로 운영하는 것보다 부담이 적게 프로그램을 실행하는 것이다. 여러 컨테이너에 내 프로그램들을 담아서 실행한다. 이 책에서는 내가 만든 web 프로그램, DB(PostgreSQL), Nginx를 컨테이너에 담아 사용했다. # docker-compose.yml version : '3' services: nginx: build: ./nginx volumes: - static_volume:/usr/src/app/_static - media_volume:/usr/sr..
[Django] django.template.exceptions.TemplateDoesNotExist: bootstrap4/uni_form.html 오류 django 스터디를 하면서 crispy를 이용해 form을 작성하려고 하면 오류가 났다. bootstrap버전 문제인가 해서 bootstrap과 CRISPY_TEMPLATE_PACK 모두 바꿔봤는데 django.template.exceptions.TemplateDoesNotExist: bootstrap4/uni_form.html 오류가 계속 떴다.. django-crispy-forms 2.0으로 업데이트 되면서 템플릿 팩을 추가로 설치해야 한다. pip install crispy-bootstrap4 그리고 settings.py에 'crsipy_bootstrap4' 를 작성해주면 된다. #settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.co..
[Django] Do it 장고+부트스트랩 13~15주차 정리 댓글 기능부터 배포전까지..드디어 스터디가 끝이 보인다. #13 댓글 기능을 만들었다. 댓글 모델을 만들고, 이번에는 댓글 폼을 이용하여 기능을 구현하였다. #models.py class Comment(models.Model): post=models.ForeignKey(Post, on_delete=models.CASCADE) author=models.ForeignKey(User, on_delete=models.CASCADE) content=models.TextField() created_at=models.DateTimeField(auto_now_add=True) modified_at=models.DateTimeField(auto_now=True) def __str__(self): return f'{sel..
[Django] on_delete=models.SET_NULL에서 주의할 점 django 실습 도중 landing.html에서 문제점을 발견했다. 원래 내가 하려던 기능은 post의 author를 불러오고, 함수를 만들어 author가 상속받은 user의 email에 따라 달라지는 아바타 이미지도 함께 가져와 landing.html에 불러오려 했다. #blog/models.py class Post(models.Model): # 생략 author=models.ForeignKey(User, null=True, on_delete=models.SET_NULL) def get_avatar_url(self): if self.author.socialaccount_set.exists(): return self.author.socialaccount_set.first().get_avatar_url..
[Django] ImportError: cannot import name 'url' from 'django.conf.urls' 오류 django 스터디를 하면서 외부라이브러리 markdownx를 사용하는데 위와 같은 오류가 났다. 전에도 비슷한 오류가 났어서 쉽게 해결할 수 있었다. 위의 site-packages\markdownx\urls.py 로 이동하면 from django.conf.urls import url from .views import ( ImageUploadView, MarkdownifyView, ) urlpatterns = [ url(r'^upload/$', ImageUploadView.as_view(), name='markdownx_upload'), url(r'^markdownify/$', MarkdownifyView.as_view(), name='markdownx_markdownify'), ] 이렇게 적혀 있다. ..
[Django] Do it 장고+부트스트랩 9~12주차 정리 다대일과 다대다 관계를 배우기 시작했다. 원래 알고 있는 개념이긴 하지만...막상 생각하면 어렵다. #09 다대일 관계인 작성자와 카테고리 기능을 추가한다. 장고에서 기본으로 제공하는 User 모델을 외부키로 하여 post에 author 필드를 추가하였다. 또, on_delete=models.CASCADE 조건으로 사용자가 삭제 되면 해당 포스트도 모두 삭제되게 하거나, on_delete=models.SET_NULL조건으로 사용자를 빈 칸으로 두는 두 가지 방법에 대하여 배웠다. 카테고리 필드도 추가하기 위해, Category 모델을 새로 만들었다. #models.py class Category(models.Model): name=models.CharField(max_length=50, unique=Tr..
[Django] Font Awesome 아이콘이 안보이는 오류(fas/fa-solid) django 스터디를 하는 중 10장에서 갑자가 Font Awesome의 아이콘이 안보이는 오류가 발생했다. 도 잘 작성했고, font의 html코드도 맞게 복사했는데 아이콘이 보이지 않았다. 이전에 사용했을 때는 잘 보였는데 갑자기 보이지 않아서 당황했다. 책에 있는 버전을 그대로 치면 잘 나오는데, 지금 사이트의 태그는 적용이 안되는 것이다. 알고보니 Font Awesome이 버전 5로 업데이트 되며 태그 방식이 바뀌었기 때문이다. 버전은 총 5가지가 있다. Regular(far) Light(fal) Douton(fad) Solid(fas) Brands(fab) 아래 두 가지만 무료로 사용할 수 있다. 사이트에서는 책에서는 였는데, 책 버전으로 작성해야 적용이 되었다. 하지만 내 사이트에서는 최신 버..