수강이 제한됩니다.
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
JWT_REFRESH_EXPIRATION_DELTA의 설명이 혹시 잘못된것 아닌가요?
해당 강의 마지막에서, refresh 를 받으면 refresh 타임도 새로 할당 받는다고 설명하신것 같은데.refresh 타임은 최초 발급된 토큰기준으로 생성된 고정된 값이 아닌가요? 'JWT_REFRESH_EXPIRATION_DELTA' : datetime.timedelta(days=7) 의 의미는 최초 토큰 발급일 이후 7일 동안 refresh 가 가능하다라는 의미인거 같은데 제가 잘못 이해한것인가요?
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
OneToOneField 관련 질문입니다!
안녕하세요, 강사님. "관계를 표현하는 모델 필드 (OneToOneField) " 강의 예시를 보면 User:Profile를 FK로 지정한다면 -> profile.user_set.first() -> user 이러한 내용이 나오는데요. 만약 User:Profile 에서 Profile를 FK로 지정한다면, 1:N관계에서 Profile 모델이 N측이니까 User모델 객체에 profile.user 이렇게 접근할 수 있는 게 아닌건가요? 그리고 User 모델 입장에서 Profile 모델 객체로 접근할 때는 참조할 모델명이 없기 때문에 user.profile._set 이렇게 접근하는 게 아닌가해서 질문드려 봅니다!
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
urlpatterns 질문
아래처럼 urlpatterns를 작성하면 될 것 같은데 re_path를 사용하시는 이유가 무엇인가요? path('post/<str:username>/', views.user_page, name='user_page'),
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
선생님 강의내용을 그대로 블로깅한분이 계신데 괜찮은가요?
https://moz1e.tistory.com/73?category=856588 진도를 나가다 보니 한 수강생분이 강의내용을 토대로 블로깅하셨는데 문제가 될 수 있을까봐 알려드립니다.
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
urls.py에서 django_pydenticon 참조가 안되네요
askcompany/urls.py askcompany/settings/common.py 안되는 이유가 뭔지 모르겠습니다
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
PostUpdateView가 변경된 form 을 저장하지 않습니다.
class PostUpdateView(LoginRequiredMixin,UpdateView): model = Post form_class = PostForm def form_valid(self, form): messages.success(self.request, '포스팅을 수정했습니다.') return super().form_valid(form) post_edit = PostUpdateView.as_view() 선생님과 같이 해당 코드를 작성해봤는데요 이게 저장과 메세지는 구현이 되는데 실제로 변경사항이 저장되지는 않는듯 합니다
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
안녕하세요!!!! 선생님 로그인에 관해 질문이 있습니다!!!
안녕하세요!!!!!!!!ㅎㅎ 이진석 선생님!!!!! 로그인에 관해 문제가 있어서 질문드립니다!! 로그인뷰를 그대로 urls.py에 불러와서 바로 사용하고있습니다!(따로user모델은 커스터마이징하지않았습니다!) 근데 문제가 있는데 두개의 브라우저 창을 열어놓고 둘다 로그인창으로 띄어놓고 (같은 브라우저창입니다 똑같은걸 2개띄어논상태) 한브라우저에서 먼저 로그인을 하고 또 다른 브라우저 창에서(역시 로그인창이 띄어있습니다) 로그인을 하면 csrf_token 에러가 뜨는데 403 Forbidden 에러가뜹니다! Help Reason given for failure: CSRF token missing or incorrect. 제가 원하는 구현은 같은 브라우저는 이미 로그인이 되있으면 그냥 로그인에 창에 다시 로그인해도 정상적으로 페이지 넘어가게 만들고 싶습니다! (물론 같은 계정으로 로그인하며 에러없이!) 혹시 이럴경우 따로 처리하는 로직을 view에 넣어야할까요!?? (만일 csrf_exempt 사용하려면 어디에 오버라이딩 해야하는지 모르곘네용) 항상 친절한 답변 너무 감사드립니다!!!!!!!!ㅎㅎ
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
migrate 오류 질문
안녕하세요, 강사님. 제가 개인적으로 진행하고 있는 프로젝트의 models.py를 일부 수정하고 migration 이후 migrate를 진행할 때 오류가 나고 있어 질문드립니다. from django.db import models from django.contrib.auth.models import User from urllib3 import encode_multipart_formdata # Create your models here. # Customer 모델 class Customer(models.Model): user = models.OneToOneField(User, null=False, blank=False, on_delete=models.CASCADE, default=0) # User모델과 1대1 관계 / null=True는 비워도 괜찮다는 것. / on delete를 사용해서 회원이 지워지면 고객도 지워지게 한다. name = models.CharField(max_length=100, null=False, default=0) # 디폴트 값을 미지정으로 수정 email = models.CharField(max_length=100) def __str__(self): return f'user: {self.user} | name: {self.name} | email: {self.email}' # Products 모델 class Post(models.Model): product_name = models.CharField(max_length=100) brand = models.TextField() price = models.PositiveIntegerField(default=0) # 가격이니까 실수가 아닌 정수 필드로 수정 image = models.ImageField(null=True, blank=True) # 이미지이니까 Image 필드 선택 created_at = models.DateTimeField(auto_now_add=True) # 상품 db에 추가할 때 날짜 설정 updated_at = models.DateTimeField(auto_now=True) # 수정될 떄마다 날짜 설정 def __str__(self): return f'product_name: {self.product_name} | brand: {self.brand} | price: {self.price} | image: {self.image} |created_at: {self.created_at}' @property def imageURL(self): try: url = self.image.url except: url = 'posts/' return url # Order 모델 class Order(models.Model): customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, blank=True, null=True) # Customer가 회원탈퇴 하더라도 주문 내역을 유지하기 date_ordered = models.DateTimeField(auto_now_add=True) complete = models.BooleanField(default=True, null=True, blank=True) transaction_id = models.CharField(max_length=200, null=True) def __str__(self): return f'id: {self.id} | customer: {self.customer} | date_ordered: {self.date_ordered} | complete: {self.complete} | transaction_id: {self.transaction_id}' @property # 장바구니에 담은 모든 상품들의 총 금액을 계산하는 코드 def get_cart_total(self): orderitems = self.orderitem_set.all() total = sum([item.get_total for item in orderitems]) return total # 장바구니에 담은 모든 상품들의 수를 계산하는 코드 def get_cart_items(self): orderitems = self.orderitem_set.all() total = sum([item.quantity for item in orderitems]) return total # Order item 모델 class OrderItem(models.Model): product = models.ForeignKey(Post, on_delete=models.SET_NULL, blank=True, null=True) order = models.ForeignKey(Order, on_delete=models.SET_NULL, blank=True, null=True) quantity = models.IntegerField(default=0, null=False, blank=False) date_added = models.DateTimeField(auto_now_add=True) def __str__(self): return f'id: {self.id} | product: {self.product} | order: {self.order} | quantity: {self.quantity} | date_added: {self.date_added}' # 장바구니에서 총 합계를 볼 수 있도록 property operator를 설정 @property def get_total(self): total = self.product.price * self.quantity return total # Shipping Address 모델 class ShippingAddress(models.Model): customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, blank=True, null=True) order = models.ForeignKey(Order, on_delete=models.SET_NULL, blank=True, null=True) address = models.CharField(max_length=200, null=True) city = models.CharField(max_length=200, null=True) zipcode = models.CharField(max_length=200, null=True) date_added = models.DateTimeField(auto_now_add=True) def __str__(self): return f'{self.address}' 위의 코드들은 models.py인데, 제가 여기서 Customer 모델 클래스의 user와 name 필드의 속성을 수정했습니다. 기존에는 null과 blank가 True로 되어있어 False로 수정을 하고 migration을 진행했는데, name과 user 필드 모두 non-nullable로 바꾸는데 default를 주지 않았다고 나왔습니다. 그래서, name = models.CharField(max_length=100, null=False, default='미지정') user = models.OneToOneField(User, null=False, blank=False, on_delete=models.CASCADE, default='미지정') 이렇게 수정하고 migrations를 진행하니까 넘어가고 migrate를 진행하니까 (env) kimsangbaek@gimsangbaeg-ui-MacBookAir impactmuseum % python manage.py makemigrations posts Migrations for 'posts': posts/migrations/0004_auto_20220206_0259.py - Alter field name on customer - Alter field user on customer (env) kimsangbaek@gimsangbaeg-ui-MacBookAir impactmuseum % python manage.py migrate posts Operations to perform: Apply all migrations: posts Running migrations: Applying posts.0003_auto_20220206_0249...Traceback (most recent call last): File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/models/fields/__init__.py", line 1823, in get_prep_value return int(value) ValueError: invalid literal for int() with base 10: '미지정' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/Users/kimsangbaek/Desktop/likelion/env/impactmuseum/manage.py", line 22, in <module> main() File "/Users/kimsangbaek/Desktop/likelion/env/impactmuseum/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line utility.execute() File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/core/management/__init__.py", line 413, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/core/management/base.py", line 354, in run_from_argv self.execute(*args, **cmd_options) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/core/management/base.py", line 398, in execute output = self.handle(*args, **options) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/core/management/base.py", line 89, in wrapped res = handle_func(*args, **kwargs) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/core/management/commands/migrate.py", line 244, in handle post_migrate_state = executor.migrate( File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/migrations/executor.py", line 117, in migrate state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/migrations/executor.py", line 227, in apply_migration state = migration.apply(state, schema_editor) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/migrations/migration.py", line 126, in apply operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/migrations/operations/fields.py", line 244, in database_forwards schema_editor.alter_field(from_model, from_field, to_field) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/backends/sqlite3/schema.py", line 140, in alter_field super().alter_field(model, old_field, new_field, strict=strict) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/backends/base/schema.py", line 608, in alter_field self._alter_field(model, old_field, new_field, old_type, new_type, File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/backends/sqlite3/schema.py", line 362, in _alter_field self._remake_table(model, alter_field=(old_field, new_field)) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/backends/sqlite3/schema.py", line 202, in _remake_table 'default': self.quote_value(self.effective_default(new_field)) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/backends/base/schema.py", line 324, in effective_default return field.get_db_prep_save(self._effective_default(field), self.connection) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/models/fields/related.py", line 971, in get_db_prep_save return self.target_field.get_db_prep_save(value, connection=connection) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/models/fields/__init__.py", line 842, in get_db_prep_save return self.get_db_prep_value(value, connection=connection, prepared=False) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/models/fields/__init__.py", line 2486, in get_db_prep_value value = self.get_prep_value(value) File "/Users/kimsangbaek/Desktop/likelion/env/lib/python3.9/site-packages/django/db/models/fields/__init__.py", line 1825, in get_prep_value raise e.__class__( ValueError: Field 'id' expected a number but got '미지정'. 다음과 같이 id 필드에 숫자가 필요하다고 나오더라구요.. 그래서 최종적으로 위의 코드와 같이 user와 name의 default=0 이렇게 설정하고 다시 migration, migrate를 진행해도 위와 같이 오류가 해결되지 않고 있습니다. 구글링 해봤을 때 아예 migrations 파일을 지우라고 하는 경우도 있던데 확실하지가 않아 이렇게 질문을 드리게 되었습니다. 천천히 답변주시면 감사하겠습니다!
- 해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
도커 컴포즈를 통한 배포 질문
- 여러분의 질문을 고대하고 있습니다. :-)- 질문 전에 검색을 먼저 해보세요. 사람 사는 게 다 비슷하다는 것을 알게 됩니다.- 예의는 거침없이 질문하기 위한 최고의 발명품입니다.- 100개의 설명이 스크린샷 한방 보다 못할 수 있습니다.- 코드를 첨부하면 전세계 누구나 이해할 수 있는 질문이 됩니다.- 하나의 질문에는 하나의 주제를 담아야 답변도 예리해집니다.- 시행착오를 알려주시면 곧 바로 원하는 문제에 집중할 수 있습니다.- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님. 강의를 통해 배포까지 마치게 되어 속이 뻥 뚫린 기분입니다. 강의에서 설명해주신 구조로 배포는 성공 했고, 추가적인 시도를 하다가 질문이 생기게되어 남깁니다. 실제 프로덕션에서는 Nignx + Gunicorn 구조로 많이 쓴다고들 하는데요. 그래서 강사님이 해주신 방법처럼 DockerFile에 Nginx까지 설치 명령을 포함할까 하다가 docker-compose라는 개념을 알게되어 시도해보고 있습니다. 로컬에서 docker-compose up --build 명령을 통해 이미지를 만들고 실행했을 때 잘 구동되는것까지 확인을 했구요. 단순 도커이미지가 아닌 docker-compose는 여러개의 컨테이너가 엮여있는 개념이니까 설정이 달라져야 할거라 생각했습니다. 그래서 Azure > App Service > 배포센터에서 docker 단일 컨테이너가 아닌 Docker-compose(미리보기) 메뉴 바꾸면 되는건가 했는데.. 이 방법이 아닌가 싶네요. 혹시 Azure의 App Service에서는 바로 docker-compose 이미지를 배포할 방법은 없는걸까요? 강의 내용에서 살짝 벗어난거같아서 질문드려도 되는지 모르겠지만 키워드만이라도 남겨주시면 감사하겠습니다. 좋은강의 감사합니다
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
장식자와 클래스 관련 질문입니다!
안녕하세요, 강사님! 비전공자이지만 개발자가 되기 위해 python & django를 공부하고 있습니다. 이제 models 부분을 수강하고 있지만 항상 자세하게 설명해주셔서 많은 도움이 되고 있습니다! 먼저 첫번째 질문은, 위와 같이 models.py에서 Post 모델을 정의할 때 class Post(models.Model): -> 이 코드는 djnago 디렉터리 내부에 -> db 디렉터리에 -> models라는 모듈을 import하고, 그 내부에 Model이라는 클래스를 상속받았다고 해석하면 될까요? 그리고 Post 모델 클래스 내부에 필드를 정의할 때도, message = models.TextField() -> 이렇게 column를 입력하고 모듈인 models에 있는 TextField() 함수를 사용한다라고 이해하면 될까요? 두번째 질문은 admin.py에서 사용된 장식자 질문입니다. 위와 같이 Post라는 모델을 admin에 등록할 때, @admin.register(Post) class PostAdmin(admin.ModelAdmin): list_display = ['id', 'message', 'created_at', 'updated_at'] list_display_links = ['message'] 이러한 코드를 저는 "django 디렉터리에 있는 -> contrib 디렉터리에 -> admin 모듈을 Import 해서, 그 admin에 Post 라는 모델 클래스를 등록하고, 장식자로 설정하기" 그리고, "admin 모듈의 ModelAdmin 클래스를 상속받아 PostAdmin이라는 새로운 클래스를 정의하고, 밑에 추가한 list_display 리스트는, 우리가 설정한 장식자인 Post 모델 클래스에 추가해서 사용하는 것" 이라고 해석을 해봤는데 맞는 내용인지 모르겠습니다. 장식자에 대한 내용은 https://bluese05.tistory.com/30 해당 블로그를 참고해서 이해하려고 했는데요, '이미 정의된 함수나 클래스를 장식자로 설정하고 추가로 변경하고 싶은 함수위에 장식자를 사용한다'라고 이해하고 있습니다. 막연히 프로젝트를 진행했을 때는 '어 이게 되네' 라면서 재미를 느꼈는데, 코드 한 줄 한 줄의 의미를 내가 모르고 있다라는 것을 느끼면서 개발자가 되려고 하는 사람이 코드에 대한 설명이 안되면 면접때도 바로 떨어지고, 이러면 안되겠다 싶어 코드 한 줄을 내가 이해하고 있는지 공부하려고 합니다.. 해당 내용 확인해주시면 감사하겠습니다!
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
ManyToManyField 데이터 불러오기
안녕하세요! User와 Job 두 모델이 있습니다. ManytoMany필드를 통해 Job들 중에서 User가 좋아한 Job들만을 따로 보여주고 싶습니다. 그런데 여러번 함수를 바꿔서 시도해도 데이터가 제대로 보여지지 않는 것 같아요. 어떤 부분에서 실수를 한건지 살펴주실 수 있나요? 1. Model.py class User(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) email = models.CharField(max_length=50) password = models.CharField(max_length=50) objects = UserManager() class Job(models.Model): title = models.CharField(max_length=50) description = models.CharField(max_length=255) location = models.CharField(max_length=255) poster = models.ForeignKey(User, related_name='user_post', on_delete=models.CASCADE) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) user_likes = models.ManyToManyField(User, related_name='liked_job') objects = JobManager() 2. view.py def add_like(request, id): liked_job = Job.objects.get(id=id) user_liking = User.objects.get(id=request.session['id']) liked_job.user_likes.add(user_liking) return redirect('/dashboard') 3. .html 1) 좋아요 기능 구현한 부분 <tbody>{% for job in jobs %} <tr> <td>{{ job.title }}</td> <td>{{ job.location }}</td> <td><a href="view/{{ job.id }}">View</a> | <a href="like/{{ job.id }}">Add</a> | <a href="edit/{{ job.id }}">Edit</a> {% if job.poster.id == request.session.id %} |<a href="/delete/{{ job.id }}">Cancel</a> {% endif %} </td> </tr>{% endfor %}</tbody> 2) 데이터 표현 구간 {% for job in job.user_likes.all %}<tr> <td>{{ job.title }}</td> <td><a href="view/{{ job.id }}">View</a></td> <td><a href="view/{{ job.id }}">Done</td></tr>{% endfor %}
- 해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
gunicorn 질문입니다.
강사님 안녕하세요. 속도 이슈 관련해서 질문드립니다. Gunicorn에서 WORKER TIMEOUT이 자주 뜨는데 해결 방법이 없을까요? 우선 크롬 콘솔에서 확인해보면 아래와같이 CORS 에러가 나긴 하는데 CORS_ALLOWED_ORIGINS에 주소를 추가해주어도 여전히 에러가 발생하고 있습니다. 혹시 Azure쪽에서 따로 추가해야하는 설정이 있을까요?
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
InvalidArchiveError 문의드립니다.
파이썬 설치를 들으면서 똑같이 실습을 진행하고 있는데 conda create 단계에서 자꾸 InvalidArchiveError라는 오류가 뜹니다. 아무리 구글링 해도 설치가 안되어서 문의 드립니다. 어떻게 해결할 수 있을까요?
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
static File 불러오기 에러
강사님 안녕하세요~~ 강의를 따라하며 실습을 진행하고 있는데.. 말씀 주신대로 static 폴더 안에 bootstrap 압축 파일과 jquery 파일을 집어 넣은 후 페이지를 새로 고침했는데, 에러가 발생합니다. common.py에서 STATIC 경로가 조금 이상한 것인가 싶어서 다시 살펴보았는데.. 제 눈에는 아무리 보아도 원인을 잘 모르겠어서 문의를 드립니다 ㅠㅠ !! 에러 화면들을 캡처 사진으로 올려드립니다. 파일 경로입니다. common.py 입니다. BASE_DIR이고, STATIC FILE 부분입니다. layout.html 입니다. ----- 혹시나 common.py 부분에서 가운데 'adminWeb'을 제거하고 STATICFILES_DIRS를 이렇게 바꾸면 해결이 될까 싶었는데, 이렇게 실행을 하면 다음과 같이 아예 작동이 되지 않습니다..! 이 곳에서 강사님께서 보시기에 에러가 날 만한 부분이 있을지,, 여쭈어봅니다. 꼼꼼한 강의를 제공해주시고, 친절한 답변해주셔서 감사합니다.
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
Username 대신 email 주소로 회원가입 및 로그인
안녕하세요! 유저이름 대신 이메일로 회원가입 및 시도를 할 수 있도록 하게 하려면 어떤 식으로 코드를 수정해야할까요? class SignupForm(UserCreationForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['email'].required = True self.fields['first_name'].required = True self.fields['last_name'].required = True class Meta(UserCreationForm.Meta): model = User fields = ['username', 'email', 'first_name', 'last_name'] def clean_email(self): email = self.cleaned_data.get('email') if email: qs = User.objects.filter(email=email) if qs.exists(): raise forms.ValidationError("already exists") return email 구글링을 통해 AbstractBaseUser를 통해 적용하는 법을 보았는데(https://swarf00.github.io/2018/12/07/registration.html#%EC%9E%A5%EA%B3%A0-auth-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EC%86%8C%EA%B0%9C), 위 링크에서는 AbstracBaseUser를 활용하여, 현재 진행중인 프로젝트에 바로 적용에는 한계가 있는 것 같습니다. 추천해주실 방법이 있다면 소개 부탁드립니다.
- 해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
react-router-dom 버전 6이후의 동작
안녕하세요. Route 컴포넌트를 사용하는 방법이 조금 바뀐거같습니다. (v6 이후) <Routes> <Route path="/about/*" element={<AboutPage/>}/> <Route path="/about/company/" element={<AboutCompanyPage/>}/> <Route path="/profile/" element={<ProfilePage/>}/> <Route path="/blog/" element={<BlogPage/>}/></Routes> 위에처럼 Route 바깥에 Routes로 감싸줘야 하는것으로 보이구요. 또 about아래에 여러 URL을 지원하려면 *를 붙여줘야 하는거 같습니다. (exact 속성도 지원하지 않는다고 합니다.) 다만 about/abcd 이런식으로는 접속해도 URL매칭은 되지만 about/company/로 슬래시로 끝내면 매칭이 되지는 않네요. 원만한 강의 진행을 위해서는 v5로 낮추어서 듣는게 좋을까요? https://stackoverflow.com/questions/69866581/property-exact-does-not-exist-on-type https://stackoverflow.com/questions/49162311/react-difference-between-route-exact-path-and-route-path
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
안녕하세요. 질문입니다.
You are not authorized to access SendGrid, please contact Support. 이런 에러가 계속 떠서 아예 app.sendgrid.com에 로그인 자체가 안되네요. 강의 계속 듣고 싶은데 저 이메일 발송 부분만 관련 지우고 들으면 될까요
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
학습법에 관하여
안녕하세요 선생님. 강의 듣다가 고민되는게 있어서 질문드립니다. 지금 10강까지 듣고있는데 강의는 좋은데 제가 이것을 다 소화해내지 못하는것같아서 그냥 듣고 따라치는거외에 어떤방법을 사용해야할지 질문드립니다. 사실은 이 강의를 다듣고나서 나혼자 제대로 이해하지 못한상태로 소화하지 못한상태로 남을까봐 두렵습니다 ㅠㅠ 계속 강의 듣다보면 어느정도 감이 올까요? 어떻게 해야 좋다고 생각하시나요??
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
포토 태그부분
photo_tag 부분에서 return mark_safe(f'<img src="{post.photo.url}" style="width: 72px"/>') 이부분에서 제가 f가 인식되지 않는거 같아서 새로고침하면 이미지는 나오지가 않습니다. 그리고 mark_safe할때 강사님께서는 import하라는게 밑에 뜨는데 저는 뜨지가 않고 직접 적어야되는데 자동으로 밑에 뜨게 하려면 어떻게 해야되나요?
- 미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
secret key 관련 질문입니다
저는 secret_key는 장고를 실행하기 위해서 반드시 필요하며 외부에 노출되면 안된다고 알고 있어서 외부에 환경변수 파일(.env)을 만들어서 저장해두고, decouple을 이용하여 secret_key를 처리해주고 있는데요 제가 다른 컴퓨터에다 git을 이용하여 clone을 받아올경우 이 secret_key는 어떻게 처리되는건가요?? env 파일은 gitignore로 업로드 되지 않고 있지만 django가 실행이 되는 것 같아서요..! decouple에서 자동 설정이 되는건가요? 검색을 해봐도 명확한 설명이 안나와서 질문드립니다 ㅠㅠ