월 26,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
게시글 a 태그 추가할 때 질문입니다
4:00쯤에 {{board.title}} 에 a 태그를 추가할 때 저는 게시글 제목말고 row 전체에다가 링크를 걸고 싶어서 <tr> <a href="{{ board.get_absolute_url }}"> <th scope="row">{{ board.pk }}</th> <td>{{ board.title }}</td> <td>{{ board.author }}</td> <td>{{ board.created_at }}</td> </a></tr> 이렇게 하면 작동을 안하더라고요. 어떻게 하면 row 전체에 링크를 걸 수 있나요?
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
어... 도커파일과 도커컴포즈 파일만들기 강의가 영상이 재생이 안됩니다.
안녕하세요. 해당 강의가 동영상을 준비중에 있습니다. 로 1분33초 동안 진행되고 다음강의 알림이 뜹니다. 어... 혹시 이 동영상은 이제 못보는 건가요? 도커 시작하는 단계인데요 ㅠㅠ
- 해결됨Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
/blog/ 페이지가 열리질 않네요
도커로 전부 옮기는 작업 마치고 마지막에 접속하니까 다른 페이지는 정상적으로 열리는데(home, about me) /blog/는 안열리네요..
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
도커 빌드시 out of memory
안녕하세요. 배포 후 web에 수정사항이 있어서 git pull 받은 뒤에 > sudo docker-compose up -d --build web 위 명령어를 실행했는데 out of memory 에러가 발생하네요. 도커의 메모리를 늘려야 하나요? --------------------------------- Building web Sending build context to Docker daemon 13.12MB Step 1/7 : FROM python:3.9-slim-buster ---> 6765f49fcf16 Step 2/7 : WORKDIR /usr/src/app ---> Using cache ---> debf846b42a4 Step 3/7 : ENV PYTHONDONTWRITEBYTECODE 1 ---> Using cache ---> a95b85eb04f7 Step 4/7 : ENV PYTHONBUFFERED 1 ---> Using cache ---> 9d7e9ce63802 Step 5/7 : COPY . /usr/src/app/ ---> Using cache ---> bee3bb3d5424 Step 6/7 : RUN pip install --upgrade pip ---> Using cache ---> d9f3740edfc3 Step 7/7 : RUN pip install -r requirements.txt ---> Running in ddfc3c1e779c OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container ini t caused: Running hook #0:: error running hook: exit status 2, stdout: , stderr: fatal error: runtime: out of memory runtime stack: runtime.throw(0x557f15ba819d, 0x16) /usr/lib/golang/src/runtime/panic.go:1116 +0x74 fp=0x7fff7fe56bc0 sp=0x7fff7fe56b90 pc=0x557f13fac074 runtime.sysMap(0xc000000000, 0x4000000, 0x557f1779fe38) /usr/lib/golang/src/runtime/mem_linux.go:169 +0xc7 fp=0x7fff7fe56c00 sp=0x7fff7fe56bc0 pc=0x557f13f8d947 runtime.(*mheap).sysAlloc(0x557f177832a0, 0x400000, 0x0, 0x4) /usr/lib/golang/src/runtime/malloc.go:727 +0x1d4 fp=0x7fff7fe56ca8 sp=0x7fff7fe56c00 pc=0x557f13f810f4 runtime.(*mheap).grow(0x557f177832a0, 0x1, 0x0) /usr/lib/golang/src/runtime/mheap.go:1344 +0x85 fp=0x7fff7fe56d10 sp=0x7fff7fe56ca8 pc=0x557f13f9cfa5 runtime.(*mheap).allocSpan(0x557f177832a0, 0x1, 0x37312d7069002a00, 0x557f1779fe48, 0x6e2d70612e323031) /usr/lib/golang/src/runtime/mheap.go:1160 +0x6b6 fp=0x7fff7fe56d90 sp=0x7fff7fe56d10 pc=0x557f13f9cd56 runtime.(*mheap).alloc.func1() /usr/lib/golang/src/runtime/mheap.go:907 +0x66 fp=0x7fff7fe56de8 sp=0x7fff7fe56d90 pc=0x557f13fdb346 runtime.(*mheap).alloc(0x557f177832a0, 0x1, 0x4012a, 0x2200000003) /usr/lib/golang/src/runtime/mheap.go:901 +0x85 fp=0x7fff7fe56e38 sp=0x7fff7fe56de8 pc=0x557f13f9c225 runtime.(*mcentral).grow(0x557f17796158, 0x0) /usr/lib/golang/src/runtime/mcentral.go:506 +0x7c fp=0x7fff7fe56e80 sp=0x7fff7fe56e38 pc=0x557f13f8d31c runtime.(*mcentral).cacheSpan(0x557f17796158, 0x557f13fd945a) /usr/lib/golang/src/runtime/mcentral.go:177 +0x3e5 fp=0x7fff7fe56ef8 sp=0x7fff7fe56e80 pc=0x557f13f8d0a5 runtime.(*mcache).refill(0x7efe2a58a108, 0x2a) /usr/lib/golang/src/runtime/mcache.go:142 +0xa5 fp=0x7fff7fe56f18 sp=0x7fff7fe56ef8 pc=0x557f13f8ca45 runtime.(*mcache).nextFree(0x7efe2a58a108, 0x557f1776922a, 0x7efe2a58a108, 0xfffffffffffffff8, 0x7fff7fe56fa8) /usr/lib/golang/src/runtime/malloc.go:880 +0x8d fp=0x7fff7fe56f50 sp=0x7fff7fe56f18 pc=0x557f13f8198d runtime.mallocgc(0x180, 0x557f166a9b60, 0x7fff7fe57001, 0x7fff7fe57050) /usr/lib/golang/src/runtime/malloc.go:1061 +0x854 fp=0x7fff7fe56ff0 sp=0x7fff7fe56f50 pc=0x557f13f82394 runtime.newobject(0x557f166a9b60, 0x557f13fda040) /usr/lib/golang/src/runtime/malloc.go:1195 +0x3a fp=0x7fff7fe57020 sp=0x7fff7fe56ff0 pc=0x557f13f8283a runtime.malg(0x8000, 0x0) /usr/lib/golang/src/runtime/proc.go:3520 +0x33 fp=0x7fff7fe57060 sp=0x7fff7fe57020 pc=0x557f13fb6d73 runtime.mpreinit(0x557f177692e0) /usr/lib/golang/src/runtime/os_linux.go:340 +0x2f fp=0x7fff7fe57080 sp=0x7fff7fe57060 pc=0x557f13fa8bef runtime.mcommoninit(0x557f177692e0, 0xffffffffffffffff) /usr/lib/golang/src/runtime/proc.go:663 +0xfa fp=0x7fff7fe570c8 sp=0x7fff7fe57080 pc=0x557f13fafeda runtime.schedinit() /usr/lib/golang/src/runtime/proc.go:565 +0xa5 fp=0x7fff7fe57120 sp=0x7fff7fe570c8 pc=0x557f13fafa65 runtime.rt0_go(0x7fff7fe57228, 0x4, 0x7fff7fe57228, 0x0, 0x7efe2978a0ba, 0x0, 0x7fff7fe57228, 0x400000000, 0x557f13fe39a0 , 0x0, ...) /usr/lib/golang/src/runtime/asm_amd64.s:214 +0x129 fp=0x7fff7fe57128 sp=0x7fff7fe57120 pc=0x557f13fe3ae9: unknown ERROR: Service 'web' failed to build : Build failed
- 해결됨Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
컨테이너로 접속이 안되는데, 뭘 더 확인해 봐야할까요?
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5a3425c3aae0 do_it_django_inflearn_2022_web "python manage.py ru…" 4 minutes ago Up 4 minutes 0.0.0.0:8000->8000/tcp do_it_django_inflearn_2022-web-1 이렇게 떠 있는데 127.0.0.1:8000으로 접속이 안되네요. 컨테이너 내리고, 그냥 로컬에서 python manage runser 해서 접속하면 잘되고요. 참고로 macos에서 사용중입니다. 스펠링 같은거 틀렸을까봐 알려주신 깃헙에서 도커관련 부분 Ctrl C&V 해봤습니다. 혹시 비슷한 증상 있으신 분 있으실지...
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
프로그래밍이라는게 참 뭔가 신기하네요...
도커 전까지의 강의는 별다른 문제없이(1, 2개쯤 있긴 했지만..) 따라하기가 잘 되는데 도커 이후로는 강의에서는 발생하지 않은 문제들이 계속 발생하네요.. 이전에는 psycopg2-binary 설치 후에 계속 모듈을 못찾는다든가..(재설치 한 5~6번 하고 재부팅 미친듯이 하니까 됨) 이번에는 gunicorn 설치 후에 에러는 안나오는데 페이지가 열리질 않네요... 이유를 도무지 알 수가 없어서 계속 도커 이미지 지우고 다시 빌드하고 계속 반복하면서 또 재부팅 미친듯이 해가면서 하니까 달리 수정한게 없는데도 이번엔 또 열리네요.. 개발이라는게 원래 이런건가요?ㅋㅋ
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
자막이 잘못됐네요
21분 경 이후에 settings.py 파일 수정 부분에서 오타로 인해 수정 자막이 나오는데 os.environ.get('DJANGO_ALLOWED_HOSTS').splits(' ') 에서 splits가 아니고 split입니다. splits로 하면 다음 강의에 등장하는 docker-compose up 을 실행했을 때 AttributeError: 'str' object has no attribute 'splits' 가 나네요.
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
blog/views.py에서
blog/views.py에서 models의 Post를 import해올 때 from .models import Post처럼 models앞에 왜 .을 붙여야 import가 되는건지 모르겠어요. 동일 폴더 내에 위치해 있으니까 그냥 from models import Post라 해도 import가 되어야 하는 것 아닌가요?
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
tag_page 만들 때 질문입니다.
강의 10분 후반에 views.py에 tag_page를 만드는 과정에서 category_page를 복사 붙여넣기 한 후 수정을 하는데 post_list를 넘길 때 카테고리 페이지에서는 Post.objects.filter를 사용했는데 왜 tag에서는 tag.post_set.all()을 사용하는지 궁금합니다. 카테고리나 태그나 어차피 포스트에 있는 요소 중에 하나이고 많은 포스트 중에서 검색해서 가져오는 절차가 크게 다르지 않은 것 같은데 카테고리처럼 필터를 사용해서 해도 상관없나요? post_set은 어디서 나온건가요?
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
소셜 로그인 관련 질문 있습니다.
강사님 덕분이 장고 공부 잘 하고 있습니다. 장고 소셜 로그인 할 때 저는 다음 창이 나오네요? 강사님은 로그인할 때 안나오던데요. 로그인, 로그아웃 할 때도 안나오게 하고싶은데 방법이 있을까요? 로그인 버튼 눌렀을 때 나오는 첫화면 로그아웃 버튼 눌렀을 때 나오는 화면 관련 문의는 1:1 문의하기를 이용해주세요.
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
Django markdownx 대체 모듈
안녕하십니까. 강의는 너무 잘 듣고 있습니다. 혹시 markdownx 를 대체할만한 모듈은 없을까요? 뭐든 최신버전으로 쓰는게 찝찝하긴 해도 기분좋은데, django 4.0.1 버전이 업데이트 되고 시간이 많이 지났음에도 불구하고 아직 지원을 하지 않네요.(사실 모듈이꼬여 가상환경을 다시 구축 하였습니다ㅜ) 혹시 대체할만한 모듈이 있다면 한번 사용해보고 싶습니다.
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
update_post_url에서 오류가 납니다
The view blog.views.view didn't return an HttpResponse object. It returned None instead.이런 오류가 발생하는데 이것저것 검색해봐도 해결이 안돼서 질문하게 되었습니다오타없이 한거 같은데 어떤 부분에서 에러가 나는지 도무지 감을 못잡겠습니다
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
FBV로 블로그 상세 페이지 만들기 문의
안녕하세요. 강의 재밌게 듣고 있습니다. FBV로 블로그 상세 페이지 만들기 를 듣다가 궁금한 점이 생겼는데요. single_page.html에서 <nav> <a href="/blog/">Blog</a></nav> 위와 같이 navigation 바를 설정하는데 저렇게 navigation 바를 설정하면 어떤 경로로 Blog페이지로 연결되는지 구체적으로 알 수 있을까요? /blog/ 라는 경로만 봤을 때는 어떤 페이지를 어떻게 참조해서 index.html 페이지가 렌더링 되는건지 잘 모르겠습니다.
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
도커로 서비스 시작하기 강의에서
docker-compose up -d --build 후 마이그레이션 하는 과정에서 makemigrations 적용이 되지 않아서 질문 올려드립니다. 문제가 뭔지 열심히 찾아봐도 도통 뭑가 문제인지 모르겠습니다 github 주소는 여기있습니다 https://github.com/JaehyoJJAng/python_Django
- 해결됨Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
MarkdownX url.py 추가 시 에러 발생
ImportError: cannot import name 'url' from 'django.conf.urls' (C:\github\do_it_django_inflearn_2021\venv\lib\site-packages\django\conf\urls\__init__.py) 위의 에러가 발생합니다 github의 강사님 코드를 그대로 가져와서 실행 해봤으나 동일한 에러가 뜹니다 흑흑
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
javascript 넣는 위치 문의드립니다.
이전에 만든 javascript는 head 태그에서 불러왔는데, 부트스트랩의 javascript는 body태그 맨 아래쪽에서 불러오는 이유가 있을까요?
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
[질문] github clone 복제 계속 않되고 있습니다.
안녕하세요. 수강생 입니다. github clone 복제에서 계속 에러가 나오고 있습니다. 강사님이 알려주신데로 했는데. 첨부된 사진처럼 복제 가 안되고 있습니다. 암호도 웹에서 로그아웃하고 로긴 되는데.. 확인 부탁 드립니다. 이메일이 아니고 설정한 name 을 입력해도 마찬가지 이구요
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
대문페이지 배경사진
대문페이지 배경사진 변경이 안됩니다 landing.css에서 body->bacground->url 의 사진경로만 변경했는데 적용이 안되네요. static/single_pages/images/abc.jpg에서 static/single_pages/images/efg.jpg로 변경했는데 적용이 안됩니다. 왜 이런걸까요?
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
Categories의 항목을 불러오지 못합니다.
강의를 따라서 test도 성공했고, category 뱃지도 출력이 됩니다. 하지만 카테고리 블록에서 미분류를 제외한 나머지, programming과 문화&예술이 출력되지 않습니다. 제가 추정컨데, view.py에서 def get_context_data를 인식하지 못 하는 것으로 보입니다. 왜냐하면, 미분류가 출력이 되지만 미분류의 개수('no_category_post_count')는 출력이 되지 않기 때문입니다. 오랫동안 코드를 비교하며 고민했으나 도저히 정답이 나오지 않습니다. 아래에 관련 코드를 첨부합니다. p.s. 다음 강의를 들어보니 post_detail 페이지에서는 search와 category가 잘 출력되는 반면, post_list 페이지에서는 search와 category가 존재조차 하지 않습니다. view.py from django.views.generic import ListView, DetailViewfrom .models import Post, Categoryclass PostList(ListView): model = Post ordering = '-pk' def get_context_data(self, **kwargs): context = super(PostList, self).get_context_data() context['categories'] = Category.objects.all() context['no_category_post_count'] = Post.objects.filter(category=None).count() return contextclass PostDetail(DetailView): model = Post base.html <!DOCTYPE html>{% load static %}<html><head> <title>{% block head_title %}Blog | 지수나라!{% endblock %}</title> <link href="{% static 'blog/bootstrap/bootstrap.min.css'%}" rel="stylesheet" type="text/css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="https://kit.fontawesome.com/1c333bfcc0.js" crossorigin="anonymous"></script></head><body>{% include 'blog/navbar.html' %}<div class="container"> <div class="row my-3"> <div class="col-md-8 col-lg-9" id="main-area"> {% block main_area %} {% endblock %} </div> <div class="col-md-4 col-lg-3"> <!-- Search Widget --> <div class="card my-4"> <h5 class="card-header">Search</h5> <div class="card-body"> <div class="input-group"> <input type="text" class="form-control" placeholder="Search for..."> <span class="input-group-append"> <button class="btn btn-secondary" type="button">Go!</button> </span> </div> </div> </div> <!-- Categories Widget --> <div class="card my-4" id="categories-card"> <h5 class="card-header">Categories</h5> <div class="card-body"> <div class="row"> <ul> {% for category in categories %} <li> <a href="#">{{ category.name }} ({{category.post_set.count}})</a> </li> {% endfor %} <li> <a href="#">미분류 ({{no_category_post_count}})</a> </li> </ul> </div> </div> </div> </div> </div></div>{% include 'blog/footer.html' %}<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script></body></html> models.py from django.db import modelsfrom django.contrib.auth.models import Userimport osclass Category(models.Model): name = models.CharField(max_length=50, unique=True) slug = models.SlugField(max_length=50, unique=True, allow_unicode=True) def __str__(self): return self.name class Meta: verbose_name_plural = 'Categories'class Post(models.Model): title = models.CharField(max_length=50) hook_text = models.CharField(max_length=100, blank=True) content = models.TextField() head_image = models.ImageField(upload_to='blog/images/%Y/%m/%d/', blank=True) file_upload = models.FileField(upload_to='blog/files/%Y/%m/%d/', blank=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) author = models.ForeignKey(User, null=True, on_delete=models.SET_NULL) category = models.ForeignKey(Category, null=True, blank=True, on_delete=models.SET_NULL) def __str__(self): return f'[{self.pk}] {self.title} :: {self.author}' def get_absolute_url(self): return f'/blog/{self.pk}/' def get_file_name(self): return os.path.basename(self.file_upload.name) def get_file_ext(self): return self.get_file_name().split('.')[-1]
- 미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
질문 사항에 아직 답변 없으셔서 여기다 깃허브 주소 드리겠습니다!!
https://github.com/saohwan/django_2021 테스트 코드 오류를 못잡고있습니다 ㅠㅠ