묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
nextjs git 관리?
섹션 12장부터 학습한 장고 프로젝트를 git에 넣어서 관리하고 있습니다.14장부터 next.js서버를 도입하는데, next 서버는 어떤 방식으로 git 저장소 관리를 해야할 까요?'장고+넥스트'로 함께 관리할지, 따로 관리해야 할지 몰라서 문의드립니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
14-07에서 SESSION_COOKIE_DOMAIN = None 처리 필요.
14-06수업에서 07 수업할 때 이를 주석처리하도록 의미하셨는지는 모르겠더라구요. 07수업에서 해당 내용에 대한 언급이 없어서계속해서 localhost:3000에서 원하는 결과를 얻지 못했어요. 그래서 SESSION_COOKIE_DOMAIN을 None으로 하니까 되더라구요. (당연하게도) 다른 분들에게 도움되라구 남겨요~
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
pycharm 프로 에디션
안녕하세요. 지금 파이참에서 프로 활성화가 계속 되지않고, 유효한 라이센스가 없다고 나옵니다.1개월 무료 활성화를 시켜보려하면 계속 구매 페이지로 이동되는데 정책이 바뀐걸까요?
-
미해결인프라 보안 점검 Ansible + Django 로 한번에 끝내기
PPT가 꺠져서 보입니다
안녕하세요PPT가 꺠져서 보입니다
-
해결됨실전! Django 입문 [최신 5.2 버전]
form 분리 시 form action
안녕하세요!강의 2분 35초에 post_list.html에서 post_create.html로 폼 분리하고 path 따로 만들었는데 form action은 그대로 'posts'라고 둬도 되는건가요,,? 저는 'post_create'로 변경해줘야 올바르게 연결이 되는데 혹시 제가 놓친 부분이 있나 해서 질문 드립니다.
-
해결됨실전! Django 입문 [최신 5.2 버전]
HTML 문법 공부
내용을 따라가면서 먼저 HTML 문법을 알아야 하겠다는 생각입니다. 교재나 공부할 수 있는 방법에 대해서 조언 부탁드립니다. 따로 책을 보는 것이 좋은지, 아니면 별도의 온라인 강의를 듣는게 좋은지 ?
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
docker-compose down 안되는 현상
안녕하세요.docker-compose down시 계속 permission denined가 뜹니다.우선 저는 가상머신 os:ubuntu에서 프로젝트를 진행중이며, sudo 붙여서 종료 시도, sudo docker kill 로도 강제 종료를 시도했지만 permission denined이라 다 실패하였습니다.최후의 수단으로 docker설치 삭제 후, 재설치도 해보았지만 안타깝게도 실패하였습니다.하여 container를 종료하려고 할 때마다 가상머신 종료하고 다시 들어가야하는 매우 불편하고도 불운한 상황에 처해있습니다. groups를 통해 docker가 있는 것도 확인하였습니다. 도저히 왜 안되는지 모르겠습니다.도움이 절실합니다... 감사합니다.ㅠ
-
해결됨실전! Django 입문 [최신 5.2 버전]
출력방법 변환
그대로 한것 같은데 한글이 안 나오는 이유가 있을까요? (출력 방식이 안 바뀌는)
-
해결됨실전! Django 입문 [최신 5.2 버전]
가상환경 확인
가상환경을 맞추는 작업(확인)을 하지 않으면 어떤 문제가 생기는지요?
-
해결됨실전! Django 입문 [최신 5.2 버전]
가상환경 구현시 에러
python 3.11을 설치했었는데.. 본 강의에 따라 어제 python 3.13을 다시 설치했습니다.강의에 따라 가상환경을 구축하기 위하여 첨부와같이 실행했더니 3.11이 구동됩니다.어떻게 해결해야 할까요?
-
해결됨실전! Django 활용
pyenv는 윈도우에서는 잘 안되나 보네요..
pyenv virtualenv 3.11.8 goodpang 하니까no such command 'virtualenv' 라고 뜨고 구글 검색해보니까 인프런 q&a 에서 윈도우에서는 잘 동작하지 않는다고 되어 있습니다.인프런 AI가 아래를 추천해주는군요.python -m venv myenv
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
LV1 설정
LV1부터 하나씩 듣고 있는데 가상환경설정 말고는 레벨1에서 설정한대로 두어도 되는 건가요?
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
메일 전송하는 부분은 어떨때 쓰는건가요?
메일 전송을 커맨드로 지정해주셨는데, 어떤 상황에서 보통 사용되는지 궁금합니다. 그리고, 서비스 내에서 특정 상황에서 알아서 (python manage.py ~ 명령어를 터미널에 따로 입력하지않아도) 이메일을 보내게 하려는 것이라면 어떻게 커맨드로 설정해놓은 저 부분을 실행시키는지 궁금합니다.
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
매직 메소드의 호출 방법 차이 문의
안녕하세요. 어떤 매소드는 __aaa__ 이렇게 끝나고 어떤 매소드는 ___aaa___() 이렇게 호출되는데, 그냥 외우는건가요? 아니면 호출하면서 에러가 발생하는 바꾸는 건가요?혹시 쉽게 구분하는 방법이 있나요?감사합니다. print(n.__doc__) print(n.__bool__())
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
왜 numbers리스트를 만들때 str으로 숫자를 감싸나요?
왜 numbers리스트를 만들때 str으로 숫자를 감싸나요?
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
고민
안녕하세요 지금 4-4까지 들은 수강생입니다. 제가 데이터 사이언스 대학원 진학을 앞두고 있는데, 개인적으로 장고기반으로 한 웹페이지 + AI 프로젝트를 하고 싶어 장고를 배우고 하려고 하는데, 이게 솔직히 좀 많이 어렵고, 지금 코드를 따라치는 것만 하는 것 같아서 학습방향이 맞나해서 질문드립니다. 소스코드는 거의 주신 걸 이용해서 복붙하고, 이제 하신 코드를 따라서 치고 결과 확인을 하는 건데, 강의하면서 말씀하시는 DOM,,등등을 잘 알아듣기가 힘들어서요,,자바같은 경우에는 공부를 했어서 MVC 패턴같이 백에서 큰 그림을 그려가며 좀 자세하게 설명을 해주시는 줄 알았는데 그게 아니여서 조금 고민이 되는 것 같습니다. 저는 모델, 뷰 또는 urls가 서로 어떻게 작용을 해서 프론트로 뿌려주는 것인지에 대한 답답함, 그리고 각 코드가 어떠한 의미를 지녔는지 잘 모르겠는 부분에 대한 답답함을 지닌 것 같습니다. for문 또는 전체적으로 함수가 어떠한 역할을 하는지는 이해했으나 어떠한 방식으로 요청하고 받고 하는지에 대해 몰라서 조금 답답한 것 같습니다. 음 예를 들자면, songlist에 있는 거를 for문으로 해서 가져오는구나,,라는 건 이해를 했는데, view와 model은 어떠한 역할을 하기에 이걸 프론트로 뿌리는거지..?라는 질문도 생기고, html은 솔직히 거의 전부 이해가 안가기도 합니다. 혹시 다른 강의를 들어야할까요? 조언을 주시면 감사하겠습니다. 긴 글 읽어주셔서 감사합니다!
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
스크랩핑 실습 중 Mac OS 인증서 문제
asyncIO 스크랩핑 실습 중 macOS에서 SSL인증서 문제로 인해 추가적으로 인증서 설치 등을 진행해야 하더라구요. 아래와 같이 수정하여, 코드 실행에는 문제가 없었는데 비동기 예제이다보니 추가적으로 선언한 get_request를 사용 시 동기화 문제에서 자유로운지 궁금합니다. 제가 한 것은 아래와 같이 SSL 인증서 설치 (Python 3.13 ver)/Applications/Python\ 3.13/Install\ Certificates.command 일부 코드 수정import ssl import certifi # 인증서 설정 ssl_context = ssl.create_default_context(cafile=cerfiti.where()) # 추가적으로 추가한 함수 def get_request(url): headers = {'User-Agent' : 'Mozila/5.0'} req = Request(url, headers=headers) return urlopen(req, context=ssl_context) async def fetch(url, executor): res = await loop.run_in_executor(executor, lambda: get_request(rul)) return res.read()
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
'venv' 같은 이름의 가상환경 만들지마세요
어떤 가상 환경인지 환경 이름에 드러나게 작성해주는게 좋습니다.변수명 작성할때도 a, b, 이렇게 하는 것 보다 name, age, 이런 식으로 의미를 명확히 담아서 만드는게 코드 유지보수하기 좋잖아요?나중에 가상환경들이 많아졌을 때, 환경 이름이 venv, venv1, venv2, 이런식으로 되어 있는 것과, django_test_venv, flask_py310_env, streamlit_llm_chatbot_py311_venv 등으로 되어있는 것 중 어떤게 더 사용이 편할지 생각해보시면 되겠습니다.이 강의도 그렇고 인터넷 보면 죄다 예제가 venv로 만드는 것으로 되어있는데 현업에서 이렇게 하다가 개고생하고 드리는 말씀이니 참고하세요...
-
해결됨실리콘밸리 엔지니어와 함께하는 샐러리(Celery)
celery.py 위치
공식문서 보면 celery.py의 위치를 프로젝트 폴더에 하라고 되어 있는데강의에서는 app폴더인 worker에 있습니다.크게 상관이 없는건가요?아니면 다른설정을 하면 app에 위치시켜도 되는건가요?
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
django-component==0.139 실행 시 오류
질문을 온전히 이해할 수 있도록, 모든 맥락을 전달해주세요.질문은 질문자가 번거로워야 보다 좋은 답변을 얻으실 수 있습니다.시행착오를 알려주시면 곧바로 원하는 문제에 집중할 수 있습니다.오류 메시지는 일부만 알려주시기보다 전체 오류 메시지를 캡처해서 주시면, 오류 파악에 도움이 됩니다. 당신의 파이썬/장고 페이스메이커가 되겠습니다. ;-)인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. runserver 실행 시 하기의 오류가 발생합니다.Exception ignored in : <function Componentregistry.__del__ at 0x2af53d0bf9a0> Traceback (most recent call last): File " .venv/lib/python3.10/site-packages/django_components/component_register.py", line 267, in __del__ AttributeError: 'NoneType' object has no attribute 'on_registry_deleted' Watching for file changes with StatReloader #...일단 겉으로 보기에는 문제 없이 작동은 합니다.settings.py는 django-components 설치 - 파이썬사랑방 튜토리얼 (pyhub.kr) 과 documentation을 보고 수정하였는데 위와 같은 문제가 발생하는 이유를 모르겠어서 혹시 아실까 싶어 질문드립니다.from email.utils import getaddresses import os, sys from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent from django.urls import reverse_lazy from environ import Env env = Env() ENV_PATH = Path(env.str("ENV_PATH", default=str(BASE_DIR / ".env"))) if ENV_PATH.exists(): with ENV_PATH.open(encoding="utf-8") as f: env.read_env(f, overwrite=True) SECRET_KEY = env.str( "SECRET_KEY", default="django-insecure-k-7_h!2*)6jefsxn6k^2@o%jb5tozyd*6^ga+ded==osow#%!!", ) # SECURITY WARNING: don't run with debug turned on in production! DEBUG = env.bool("DEBUG", default=True) ALLOWED_HOSTS = env.list("ALLOWED_HOSTS", default=[]) CSRF_TRUSTED_ORIGINS = env.list("CSRF_TRUSTED_ORIGINS", default=[]) # Application definition INSTALLED_APPS = [ # django apps "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", # third apps "crispy_forms", "crispy_bootstrap5", "django_bootstrap5", "django_components", "django_extensions", "django_filters", "django_htmx", "formtools", # will be deprecated, form wizard "imagekit", "taggit", "template_partials", # local apps "accounts", "board", "core", "pao", "simater", "dvmt", # Django clenup should be placed last "django_cleanup.apps.CleanupConfig", ] CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5" CRISPY_TEMPLATE_PACK = "bootstrap5" TAGGIT_CASE_INSENSITIVE = env.bool("TAGGIT_CASE_INSENSITIVE", default=True) if DEBUG: INSTALLED_APPS += [ "debug_toolbar", ] AUTH_USER_MODEL = "accounts.User" # Load customized user from accounts app LOGIN_REDIRECT_URL = "/" LOGIN_URL = reverse_lazy("accounts:login") from django.core.exceptions import ImproperlyConfigured EMAIL_HOST = env.str("EMAIL_HOST", default=None) if DEBUG and EMAIL_HOST is None: # EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend" else: try: EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend" EMAIL_PORT = env.int("EMAIL_PORT") EMAIL_USE_SSL = env.bool("EMAIL_USE_SSL", default=False) EMAIL_USE_TLS = env.bool("EMAIL_USE_TLS", default=False) EMAIL_HOST_USER = env.str("EMAIL_HOST_USER") EMAIL_HOST_PASSWORD = env.str("EMAIL_HOST_PASSWORD") DEFAULT_FROM_EMAIL = env.str("DEFAULT_FROM_EMAIL") SERVER_EMAIL = env.str("SERVER_EMAIL", default=DEFAULT_FROM_EMAIL) except ImproperlyConfigured as e: print("ERROR:", e, file=sys.stderr) EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", "django_htmx.middleware.HtmxMiddleware", "csp.middleware.CSPMiddleware", ] if DEBUG: MIDDLEWARE = [ "debug_toolbar.middleware.DebugToolbarMiddleware", ] + MIDDLEWARE ROOT_URLCONF = "config.urls" TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [ BASE_DIR / "core" / "templates", # BASE_DIR / "core" / "src-django-components", ], # "APP_DIRS": True, "OPTIONS": { "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", ], "loaders": [ ( "django.template.loaders.cached.Loader", [ # Default Django loader "django.template.loaders.filesystem.Loader", # Including this is the same as APP_DIRS=True "django.template.loaders.app_directories.Loader", # Components loader "django_components.template_loader.Loader", ], ) ], }, }, ] WSGI_APPLICATION = "config.wsgi.application" # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases DEFAULT_DATABASE_URL = f"sqlite:///{BASE_DIR / 'db.sqlite3'}" DATABASES = { "default": env.db(default=DEFAULT_DATABASE_URL) } # Password validation # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", }, { "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", }, { "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", }, { "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", }, ] # Internationalization # https://docs.djangoproject.com/en/4.2/topics/i18n/ LANGUAGE_CODE = env.str(var="LANGUAGE_CODE", default="ko-kr") TIME_ZONE = "Asia/Seoul" USE_I18N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/4.2/howto/static-files/ STATIC_URL = env.str("STATIC_URL", default="static/") STATICFILES_DIRS = [ # BASE_DIR / "core" / "static", # BASE_DIR / "core" / "src-django-components", ] STATIC_ROOT = env.str("STATIC_ROOT", default=BASE_DIR / "staticfiles") # django-components # - context variable를 resolve하는 방식이 변경 from django_components import ComponentsSettings COMPONENTS = ComponentsSettings( dirs=[ Path(BASE_DIR) / "core" / "src-django-components", ], ) # COMPONENTS = { # "dirs": [ # # BASE_DIR / "components", # default # BASE_DIR # / "core" # / "src-django-components", # ], # # "context_behavior": "django", # default # } STATICFILES_FINDERS = [ # Default finders "django.contrib.staticfiles.finders.FileSystemFinder", "django.contrib.staticfiles.finders.AppDirectoriesFinder", # Django components "django_components.finders.ComponentsFileSystemFinder", ] MIDDLEWARE += [ "django_components.middleware.ComponentDependencyMiddleware", ] # Media files MEDIA_URL = env.str("MEDIA_URL", default="media/") MEDIA_ROOT = env.str("MEDIA_ROOT", default=BASE_DIR / "mediafiles") # Default primary key field type # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" from django.contrib.messages import constants as messages_constants if DEBUG: MESSAGE_LEVEL = messages_constants.DEBUG INTERNAL_IPS = env.list("INTERNAL_IPS", default=["127.0.0.1"]) if DEBUG: # FORM_RENDERER = "core.forms.renderers.NoCacheDjangoTemplates" INSTALLED_APPS += [ "django.forms", ] DEFAULT_FILE_STORAGE = "django.core.files.storage.FileSystemStorage" ADMIN_PREFIX = os.environ.get("ADMIN_PREFIX", "might/") ## django default loggings : django.utils.logs.DEFAULT_LOGGING ## LOGGING settings LOGGING = { #... } ADMINS = getaddresses([env.str("ADMINS", default="")]) # Django-csp settings CSP_FRAME_ANCESTORS = env.list("CSP_FRAME_ANCESTORS", default=[]) CSP_DEFAULT_SRC = [ "'self'", ] CSP_SCRIPT_SRC = ["'self'", "'unsafe-inline'", "'unsafe-eval'"] + CSP_FRAME_ANCESTORS CSP_STYLE_SRC = [ "'self'", "'unsafe-inline'", ] + CSP_FRAME_ANCESTORS CSP_IMG_SRC = [ "'self'", "data:", ] + CSP_FRAME_ANCESTORS if not CSP_FRAME_ANCESTORS: CSP_FRAME_ANCESTORS = ["'self'"]