묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
블로그 게시
안녕하세요 학습한 내용을 블로그나 깃허브에 정리해서 올려보려고 하는데 혹시 괜찮을까요?? 물론 강의 소스코드나 자료는 게시하지 않겠습니다
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
{{form.as_p}} 사용방법 질문드립니다.
form.py에 클래스로 작성해놓고, html 파일로{{form.as_p}} 입력하면 자동으로 그 form이 나옵니다. form.py에 클래스가 이것만 있는것도 아닌데, 어떻게 구분해서 나오는지 못 찾았습니다. 설명 부탁드립니다. 감사합니다.
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
reverse vs reverse_lazy 사용 이유와 차이점을 이해하지 못 했습니다.
reverse 와 reverse_lazy가 호출 즉시 평가한다. 지연평가한다. 여기서 평가가 의미하는게 뭔지 잘 모르겠습니다. 그리고 form_valid는 어디서 호출이 되는건가요. 전반적으로 이해가 잘 안되어 질문에 두서가 없습니다. 죄송합니다.
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
urls.py에 라우팅 하는 부분에서요.
config/urls.py가 있고, 앱을 만든다면 apps/urls.py가 꼭 필요한가요? config/urls.py 안에 다 넣을 수 있지 않을까요?
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
handler, static 질문이 있습니다.
안녕하세요,mysite>urls.py에handler404 = 'mysite.views.error_404_view' # #404에러 발생시 처리 handler500 = 'mysite.views.error_500_view'이렇게 작성하고,views.py 에서 def 로 함수 정의해서 쓰는데요.handler404, handler500 views.py에 context로 연결하는 예제 하나만 보여주시면 안될까요.원래 질문은 handler404, handler500를 어디에 쓰는지 모르겠다 였는데, 강의 후반부에 context로 연결해서 쓴다고 말씀해주셔서 질문을 바꿨습니다. 다른 질문은 static 부분에서 main.html 에서 <img src = "{% static 'mysite/django.png' %}" alt="Django image" />이렇게 작성해서 사용하는데, static을 settings.py에 정의해서 사용하신다고 알려주셨는데, 어떤 부분과 대응 되는지 잘 모르겠습니다. STATIC_URL ='/static/' 이부분 뒤로 붙어서 static/mysite/django.png 이런식으로 읽어오게 되는게 맞을까요?질문 받아주셔서 감사합니다.
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
build: context 부분이 이해가 되지 않습니다.
context: . 대신에 다른걸 쓸 수 있다고 말씀해주시긴하는데, 제가 이해가 잘 안됩니다. services: app: build: context: .이부분만 다시 설명해주실수있으실까요?
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
직렬화 질문
from snippets.models import Snippet from snippets.serializers import SnippetSerializer from rest_framework.renderers import JSONRenderer from rest_framework.parsers import JSONParser snippet = Snippet(code='foo = "bar"\n') snippet.save() snippet = Snippet(code='print("hello, world")\n') snippet.save() 튜토리얼 보고 따라하고 있었는데 shell에 이 부분을 저장하는 방법을 잘 모르겠습니다 혹시 한번만 상세하게 알려주실 수 있을까요??
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
Celery 수업중 세팅 질문드립니다.
안녕하세요! 강사님의 좋은 강의덕에 완강을 눈앞에 두고 있습니다! 현재 celery 파트 강의를 듣는중 docker 환경이 아니라 로컬에서의 celery 세팅방법을 알려주시면 감사하겠습니다ㅠㅠ
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
6-1 질문
runserver을 하기 위해서 manage.py를 사용하는데 만약에 mysite를 이용하기 위해서는 mysite에 있는 manage.py를 이용해야하고 dealershop을 이용하기 위해서는 거기있는걸 이용해야하는건가요??처음에 mysite의 manage.py를 이용해서 하다가 inventory로 안넘어가길래 무슨 문제가 있나 했어요ㅠㅠ
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
크롬에서 서드 파티 쿠키 제한이라는 에러가 뜨는데 혹시 추가로 어떤걸 업데이트 해야지 정상작동 되는지 알 수 있을까요?
버튼 클릭 후 먹통이여서 콘솔을 보니 써드 파티 쿠키 제한이라고 나오더라구요. 혹시 이 이유로 정상작동이 안된건지... 알고싶습니다. 그러하다면 어떻게 바꿔야 하는지도 알려주시면 감사하겠습니다~!
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
dock 환경설정에 대해 잘 이해가 가지 않습니다.
다커 인스톨 후 설명을 들은 후 같이 따라가려고 하는데 이미 파일들이 다 존재하던데,, 그 파일은 임의로 만들고 그 이후로 compose build를 실행하면 되는걸까요? 아니면 따로 생성하는 방법이 있을까요
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
Django Authentication 중에 로그아웃 기능이 안됩니다 ㅠㅠ
코드를 비교해봐도 똑같습니다... 로그인은 되어잇고 그 후 로그아웃을 하려면 405 에러가 나오네요 ㅠㅠ
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
학습방식
section 4에서 꽤 해맸지만 그래도 5까지 강의를 들었습니다. 이제 to-do-list를 만드려고 했는데 막막해져서 질문 남깁니다.각각 강의가 전달하려는 내용은 이해한 것 같은데 들은 강의들의 내용을 모두 조합해서 하나의 서비스를 구현하려고 하니 어떻게 해야할지 잘 모르겠습니다. 이럴 경우에는 강의를 한번 다시 보는게 나을까요..?완전 노베이스에 조금 늦게 시작해서 그런지 학습 이해력이 좀 좋지 않고 질문하는 방식이 좀 미숙한 점 죄송합니다.완강하면 꼭 수강평 남기겠습니다!
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
docker, flower 질문
안녕하세요 강사님 강사님께서 설명해주신대로 해봤는데 아무리 해봐도 실행이 증상은 같아서 플라워만 제외하고 했을대는 잘 redis, celery는 잘올라가는데 flower를 넣으면 계속 문제가 생기더라구요 일단 깃허브에 올려서 코드한번만 봐주실수 있을까요?감사합니다https://github.com/nomzzang/new
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
docker 컨테이너 환경설정 문제
docker 컨테이너를 바로 생성하지 않고 따로 실행하는 걸로 했을때 아래와 같은 실행화면까지 나오고 잠시후에 에러메세지가 뜨는데 여기서 더이상 방법을 못찾아서 헤매고 있습니다 ㅎㅎ 윈도우라서 그런건 아니겠죠?[I 240227 01:42:46 command:177] Registered tasks:['celery.accumulate','celery.backend_cleanup','celery.chain','celery.chord','celery.chord_unlock','celery.chunks','celery.group','celery.map','celery.starmap'][E 240227 01:42:54 events:191] Failed to capture events: 'Error 11001 connecting to redis:6379. getaddrinfo failed.', trying again in 2 seconds.[E 240227 01:42:54 base_events:1771] Future exception was never retrieved 따로 실행하는 이유는 처음에 docker-compose up --build -d 해서 생성할때 flower에서Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "flower": executable file not found in $PATH: unknown에러가 발생해서 찾아보니 따로 실행하면 된다고 그래서 현재 따로 실행중에있습니다. version: '3' services: app: build: ./python_app volumes: - ./python_app:/usr/src/app ports: - "8000:8000" # 필요한 경우, 앱이 외부에 노출할 포트를 지정 redis: image: "redis:alpine" celery_worker: build: ./python_app command: celery -A tasks worker --loglevel=info volumes: - ./python_app:/usr/src/app depends_on: - redis celery_beat: build: ./python_app command: celery -A tasks beat --loglevel=info volumes: - ./python_app:/usr/src/app depends_on: - redis flower: image: mher/flower command: flower --broker=redis://redis:6379/0 --port=5555 ports: - "5555:5555" depends_on: - redis
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
celery-worker, beat, flower, docker-compose 질문
안녕하세요 강사님 프로젝트 진행중입니다! ㅎㅎ 현재 장고없이 celery, beat, flower 를 로컬에서는 정상적으로 동작하는데 Docker 컨테이너로 해서 할 때 worker와 redis간의 포트문제가 발생하고 flower는 설치가 안되는 현상이있는데 장고없이 저 세가지를 컨테이너로 생성해서 정상적으로 동작할수 있는 docker-compose, dockerfile 작성 하는 팁이 따로 있을까요? 추가적으로 celery가 윈도우에서 멀티프로세싱이 안된다고 하는데 그것이 영향이 있어서 그런건가요?
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
4-1 공식문서
안녕하세요 4-1강의에서 본 공식문서혹시 링크 받을 수 있을까요??제가 찾은건 이거밖에 없어서요https://docs.djangoproject.com/ko/5.0/topics/db/models/
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
장고 프로젝트 질문
안녕하세요 강사님 ! 강사님께서 좋은 강의 올려주셔서 올려주신 강의 기반으로 프로젝트를 진행하려고 계획을 하고 있습니다. 계획 중에 몇가지 궁금한게 있어서 이렇게 질문 드립니다. 프로젝트 내용 : OPENAPI 데이터를 수집, 저장설명 : OPEN API로 데이터를 받는 수집 모듈이 있고 받은 데이터를 필요한 값만 정리 해서 DB에 저장하고 그것을 모니터링 하는 프로그램을 만들려고 합니다. 질문1 : 모든 모듈(수집,가공,모니터링을) 안정성을 위해서 이중화 하려고 하는데 Docker의 컨테이너를 두개씩 실행시키면 이러한 것이 안정성와 이중화 개념에 적합한가요? 질문2 : 모든 모듈(수집,가공,모니터링)을 아마존 AWS에 클라우드에서 실행하려고 하는데 서버 하나를 빌려서 사용하면 한 서버 안에 수집, 가공,모니터링이 같이 존재하는데 서버가 죽게 되면 모니터링하는 부분도 같이 죽게 되는데 이 방법을 해결하려면 모니터링 서버를 따로 구축해서 해야 할까요? 질문3 : 수집은 스크립트로 작성하고 가공은 장고 프레임워크를 이용해서 구축하려고 하는데 수집도 장고 프레임워크로 하는게 전체적으로 안정성이나 여러 방변으로 효율적일까요? 아직 모르는게 많은 쥬니어개발자라 질문이나 정보가 잘못 되더라도 많은 양해부탁드립니다 ㅠㅠ
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
nginx, gunicorn, daphne 기반 배포 관련하여 질문 좀 드릴게요
안녕하세요~현재까지 공개된 강의 내용과 무관한 질문이지만, 도통 문제 해결 방향을 잡지 못하고 있어 글 남겨 봅니다. ><DRF, Channels, React로 만든 앱을 nginx, gunicorn, daphne 기반으로 배포하려는데, 막힌 지점에서 벗어나질 못하고 있습니다 ㅜnginx, gunicorn, daphne 모두 정상적으로 동작하고 있는 것 같은데, nginx 설정 파일에 등록한 127.0.0.1로 접속하면 "사이트에 연결할 수 없음, 127.0.0.1에서 연결을 거부했습니다"라는 화면이 나옵니다.문제 해결을 위해 추가적으로 살펴봐야 부분에 관해 조언을 해주신다면 너무 감사드리겠습니다!한 가지 찝찝한 부분은, react오 django 프로젝트 폴더를 담고 있는 폴더의 경로는 home/kiwitter인데 home/ubuntu/kiwitter/처럼 현재 제 우분투 환경의 사용자를 중간에 추가해야 진행 시 오류가 발생하지 않더라고요. 가상환경 사용과 관련있는 것 같은데, 어쨌든 그래서 경로 입력 시 home/ubuntu/kiwitter/처럼 중간에 사용자명을 추가하는 방식을 사용하고 있는데, 혹시 지금 문제가 이것과 관련이 있을까 싶어 말씀드립니다.배포 시 React와 Django 프로젝트가 정상적으로 동작하는지 각각 따로 확인하는 방법이 있을까요? Django도 지금처럼 http와 웹소켓으로 클라이언트 요청이 들어오는 경우에 각각의 동작 여부를 개별적으로 살펴볼 수 있는 방법이 있나요? 배포 관련 지식이 없는 데다 하나씩 단계적으로 정상 동작 여부를 점검하지도 못하니 배포의 늪에서 벗어나는 게 더 힘드네요,,파이썬 사랑방에는 모든 게시물이 관리자의 승인을 받아야 되나요? 아니면 가령 일정 등급 이상이 되면 승인 없이 게시물을 자유롭게 올릴 수 있나요? 여기서 질문 드린 부분을 처음에는 페북 파이썬 사랑방 그룹에 질문했었는데 관리자의 검토가 필요하다는 안내를 보고 궁금해서 여쭤봅니다. ✔ 프로젝트 폴더 구조(venv) ubuntu@Ubuntu:~/kiwitter$ ├── kiwitter_backend │ ├── chats │ ├── db.sqlite3 │ ├── kiwitter_backend │ ├── kiwitter.sock │ ├── log │ ├── manage.py │ ├── secrets.json │ ├── staticfiles │ ├── tweets │ └── users ├── kiwitter_frontend │ ├── build │ ├── node_modules │ ├── package.json │ ├── package-lock.json │ ├── public │ ├── README.md │ └── src ├── requirements.txt └── venv ├── bin ├── include ├── lib ├── lib64 -> lib └── pyvenv.cfg ✔ nginx, gunicorn, daphne 동작 상태<sudo systemctl status nginx 명령어 출력 결과><ps aux | grep gunicorn의 출력 결과><ps aux | grep daphne의 출력 결과>✔ nginx, gunicorn, daphne 관련 설정 파일</etc/nginx/sites-available/kiwitter>upstream django_server { server unix:/home/ubuntu/kiwitter/kiwitter_backend/kiwitter.sock; # Gunicorn 소켓 파일 위치 } upstream channels_layer { server localhost:6379; # Daphne 서버 주소 및 포트 } server { listen 80; server_name 127.0.0.1; # 실제 도메인 또는 공용 IP 주소로 변경 # React 앱이 위치한 경로 location / { root /home/ubuntu/kiwitter/kiwitter_frontend/build/; try_files $uri $uri/ /index.html; } location = /favicon.ico { access_log off; log_not_found off; } location /static/ { alias /home/ubuntu/kiwitter/kiwitter_backend/staticfiles/; # STATIC_ROOT 경로 } location /media/ { alias /home/ubuntu/kiwitter/kiwitter_backend/media/; # MEDIA_ROOT 경로 } # API 요청을 Django로 프록시 location /api/ { proxy_pass http://django_server; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # Django admin 페이지 및 기타 Django 경로 location /admin/ { proxy_pass http://django_server; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # WebSocket 요청 처리를 위한 설정 location /ws/ { proxy_pass http://channels_layer; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }</etc/systemd/system/gunicorn.service>[Unit] Description=gunicorn daemon After=network.target [Service] User=ubuntu Group=www-data WorkingDirectory=/home/ubuntu/kiwitter/kiwitter_backend ExecStart=/home/ubuntu/kiwitter/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/ubuntu/kiwitter/kiwitter_backend/kiwitter.sock kiwitter_backend.wsgi:application [Install] WantedBy=multi-user.target</etc/supervisor/conf.d/channels.conf>[fcgi-program:asgi] socket=tcp://localhost:8000 directory=/home/ubuntu/kiwitter/kiwitter_backend command=/home/ubuntu/kiwitter/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers kiwitter_backend.asgi:application numprocs=2 process_name=asgi%(process_num)d autostart=true autorestart=true stdout_logfile=/home/ubuntu/kiwitter/kiwitter_backend/log/asgi.log redirect_stderr=true✔ Django settings.py... 생략 ALLOWED_HOSTS = os.getenv('ALLOWED_HOSTS', '').split(',') # .env 관련 부분 -> ALLOWED_HOSTS=127.0.0.1,localhost ... 생략 CSRF_TRUSTED_ORIGINS = [ 'http://127.0.0.1:8000', 'http://127.0.0.1', 'http://localhost:8000', 'http://localhost', ] ... 생략 CHANNEL_LAYERS = { 'default': { 'BACKEND': 'channels_redis.core.RedisChannelLayer', 'CONFIG': { "hosts": [('127.0.0.1', 6379)], # Redis 서버 주소 }, }, }
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
복습
이제 section 3 까지 학습완료했습니다.이제까지 만들어본걸 강의나 제공된 소스코드 없이 다시 만드는 방식으로 복습하려고 하는데 혹시 추천하는 복습 방법이 있으신가요?