묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
기존에 만들어 진 테이블을 ORM으로 사용하고 싶어요
mysql 에 테이블을 기존에 만들어 둔게 있습니다. 다른 서비스가 데이터를 쌓아 놓는 테이블인데 여기를 ORM으로 조회를 한번 해보고 싶습니다. 로그성 테이블이라 pk가 없습니다.python manage.py inspectdb 로 모델 코드를 만들어 내긴 했습니다.python shell로 조회를 하려고 하는데 id 필드를 찾으려는 시도를 계속 합니다. 기존에 만들어진 DB 스키마를 ORM으로 사용려고 만든 것이 inspectdb 일것 같은데 장고 ORM 구조가 PK를 필수로 가져야 하는 구조인지 궁금합니다.(구글링 해보면 PK가 필수라는 이야기도 있고, CHATGPT에게 물어보면 Meta클래스에 managed가 False이면 괜찮다는 답변이 나오네요) inspectdb로 만들어진 코드에는 Meta 클래스가 아래와 같이 있습니다.class MacLog(models.Model): timestamp = models.DateTimeField() sw_ip = models.CharField(max_length=20) mac = models.CharField(max_length=255) port = models.CharField(max_length=20) class Meta: managed = False db_table = 'mac_log' 다음은 에러가 나는 내용 입니다. >>> from django.db.models import QuerySet >>> from maccol.models import MacLog >>> >>> qs = QuerySet(MacLog) >>> for item in qs: ... print(item) ... None Execution time: 0.019902s [Database: default] Traceback (most recent call last): File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 261, in query _mysql.connection.query(self, query) MySQLdb.OperationalError: (1054, "Unknown column 'mac_log.id' in 'field list'") The above exception was the direct cause of the following exception: Traceback (most recent call last): File "<console>", line 1, in <module> File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django_extensions/management/debug_cursor.py", line 49, in execute return utils.CursorWrapper.execute(self, sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute with self.db.wrap_database_errors: File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/utils.py", line 91, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/Users/dcu/workspace/maccol/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 261, in query _mysql.connection.query(self, query) django.db.utils.OperationalError: (1054, "Unknown column 'mac_log.id' in 'field list'")
-
미해결실리콘밸리 엔지니어와 함께하는 샐러리(Celery)
셀러리 사용에 문의드립니다.
현재상황은 다음과 같습니다. 윈도우 gui 오토메이션을 해야하는 task 가 있습니다.큐(sqs)는 우선큐 일반큐 두개를 스위칭 해야하는 상황입니다.우선큐에 메세지가 없을경우만 일반큐를 컨슘해야합니다.메세지를 처리하는 인스턴스는 윈도우 gui 를 사용하기 때문에 한대의 장비에서 동시에 하나의 task 만 실행될 수 있습니다. 위의 제약조건들로 인하여 gui 기반의 셀레니움 자동화 스크립트를 구성하고 우선큐와 일반큐를 스위칭하면서 10개 이상의 윈도우 장비가 큐를 폴링하고 있습니다. 이를 윈도우 장비 하나에 하나의 스탠드얼론 워커를 띄우는 형태로 구성하고. 예를 들어 열개의 인스턴스에 각각하나씩 열개의 스탠드얼론 셀러리 워커를 띄우려고 합니다. 하나의 스탠드 얼론 워커가 두개의 큐를 priority 따라서 폴링하는게 가능할까요? 스펙상에서는 되는거 같긴한데 문서를 봐도 잘 모르겠어서 혹시나 문의드립니다. 안된다면 각각의 큐를 폴링하는 스탠드 얼론 워커를 인스턴스에 브로커의 개수만큼 띄우고 (하나의 인스턴스 두개의 스탠드얼론워커) 뒤에 별도의 자동화 로직을 구성하고 큐의 우선순윈는 서비스로직으로 풀어야 하나 고민중입니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
3-4질문 계속합니다 ㅠㅠ 죄송합니다
계속 질문드려 죄송합니다 ㅜㅠ 들여쓰기했는데 이번에 Song.from_dict() missing 1 required positional argument: 'data' 이런오류가뜹니다.. 너무 질문이 많아 죄송합니다..
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
3-4 질문입니다
데이터베이스 sqlite연결하고models.py 파일들어가서도 변경했습니다변경하고 모델 Song 클래스 table까지 생성완료했습니다그런데 사진과 같이 예상외 오류가뜹니다 그전까지는 핫트랙 홈페이지가 잘떳습니다오류내용보니 전혀 건들이지 않는 views.py song.from_dic 에서 오류가 먼저 났습니다 이유를 잘 모르겠습니다...
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
3-4 db sqlite3 파일 질문입니다22
새로고침을해도 데이터베이스 테이블 목록에는 저거 밖에 안뜨는데 이유를 알수있을까요??
-
해결됨실전! Django 활용
python manage.py showmigrations 문제
안녕하세요.실습 진행 중에 처음부터 잘 안돼서 메세지 드립니다. python magage.py showmigration 하고 migrate 후에 sqllite 파일 삭제했습니다.다시 prostresql 도커 적용하고 그 후부터 에러가 나네요.python manage.py showmigrationsadmin[X] 0001_initial[X] 0002_logentry_remove_auto_add[X] 0003_logentry_add_action_flag_choicesauth[X] 0001_initial[X] 0002_alter_permission_name_max_length[X] 0003_alter_user_email_max_length[X] 0004_alter_user_username_opts[X] 0005_alter_user_last_login_null[X] 0006_require_contenttypes_0002[X] 0007_alter_validators_add_error_messages[X] 0008_alter_user_username_max_length[X] 0009_alter_user_last_name_max_length[X] 0010_alter_group_name_max_length[X] 0011_update_proxy_permissions[X] 0012_alter_user_first_name_max_lengthcontenttypes[X] 0001_initial[X] 0002_remove_content_type_namesessions[X] 0001_initial어떻게 하면 좋을까요?장고 프로젝트 설치도 해보고 도커도 지워보고 했는데 잘 안돼서 메세지 드립니다. python manage.py makemigrationsno Chages detected python manage.py migrateOperations to perform:Apply all migrations: admin, auth, contenttypes, sessionsRunning migrations:No migrations to apply. 아래의 setting 정보로 database 접속도 잘됩니다.DATABASES = {"default": {"ENGINE": "django.db.backends.postgresql_psycopg2","NAME": "goodpang","USER": "goodpang","PASSWORD": "goodpang","HOST": "127.0.0.1","PORT": "5433",}}
-
미해결플러터와 장고로 1시간만에 퀴즈 앱/서버 만들기 [무작정 풀스택]
vscode 포매팅 하는 방법이 궁금합니다
코드 작성하시고 저장하시거나 다음으로 넘어가면 저절로 포매팅이되는데 이 부분은 어떻게 설정해야하나요?
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
doitdjango 블로그 게시판 작동 오류
안녕하세요.요즘에 'aws lightsail 로 프로젝트 옮기기'를 듣고 있습니다.거기서 블로그 글을 참고하라고 하셔서, 블로그를 들어갔더니, 해당 블로그 게시판이 작동하지 않습니다.확인 부탁드려도 될까요? 감사합니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
3-4 db sqlite3 파일 질문입니다
db sqlite3 파일을 더블클릭했는데 3-4 2분10분 화면처럼 창이 안뜨는데 혹시 무엇이 잘못된지 알수있나요?>....
-
미해결[Django] 장고로 인프런 따라만들기
ckeditor에서 richtextuploadingfield부분이 생성이 안되는 부분
board_text=richtextfield(null=true)를 넣으면 원하는 형태의 richtextfield가 출력이 되는데board_text=richtextuploadingfield(null=true)로 바꾸면 단순히 listbox(textbox)가 나옵니다. 똑같이 코드를 하였는데 ,뭐가 잘못된 것인가요?환경은 windows 10입니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
강의목록 03-05 좋아요 count 멜론 사이트 접근 오류
안녕하세요. 강의 03-05 에서 좋아요 수를 검색하는 Action 에서 오류가 나서 문의 드립니다. 어드민 화면에서 Update Like count 액션을 실행하면 아래 와 같은 에러 페이지가 노출됩니다.강사님 코드를 복사해서 붙여서 해봐도 같은 현상이라서 이것저것 찿아봤지만 도무지 해결이 않되네요. postman에서 도 접근이 않되는데, 브라우저에서 해당 url로 접속하면 데이터가 보이기는 합니다.여기저기 구글링 해보고 이리저리 변경도 해 봤지만.. 해결이 되지않아 질문을 올립니다.제 pc가 회사에 있는 pc라 혹시 로컬 환경이 문제일수 있나 싶기도 하지만, 우선 확인 요청드립니다. 감사합니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
섹션 11 체크리스트 링크 확인 요청
안녕하세요.알차게 준비해주신 강의 잘 듣고 있습니다.강의 수강 중 섹션 11에서 참고하고 있는 체크리스트 링크가 수업노트에 기재되어 있지 않아 문의 드립니다.
-
해결됨Django REST Framework 핵심사항
INSTALLED_APPS 순서
안녕하세요 강사님 INSTALLED_APPS의 순서를 만든 앱 -> 서드파티 패키지 -> 장고 기본 앱순서로 하시는 이유가 있으신가요?
-
해결됨Django REST Framework 핵심사항
vscode 실행안됨
안녕하세요.현재 상황은VueDjAgency-ch0 디렉터리에서 vscode 실행가상환경 만들고python = 3.10, django = 4.0, pillow, djangorestframework 설치완료했습니다.1월 경에 올리신 CDN 에러 해결 코드도 수정했습니다.python manage.py runserver 하면무한 로딩되고 페이지에는 아무것도 뜨지 않습니다.어떻게 해야할까요?
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
외래키 참조 관계에서 bulk_create는 어떻게 사용하나요?
from django.db import models class Post(models.Model): title = models.CharField(max_length=200) content = models.TextField() class Comment(models.Model): post = models.ForeignKey(Post, on_delete=models.CASCADE) content = models.TextField() import itertools from typing import Iterator, Tuple from django.core.management import BaseCommand from django.db import transaction from blog.models import Post, Comment class Command(BaseCommand): help = "test" def handle(self, *args, **options): generate_post_instances = ( Post(title=title, content=content) for title, content in self.generate_post_row() ) with transaction.atomic(): for chunks in self.get_chunks(generate_post_instances, chunk_size=1000): Post.objects.bulk_create(chunks, ignore_conflicts=True) for post_instance in Post.objects.all(): generate_comment_instance = ( Comment(post=post_instance, content=content) for content in self.generate_comment_row() ) for chunks in self.get_chunks( generate_comment_instance, chunk_size=1000 ): Comment.objects.bulk_create(chunks, ignore_conflicts=True) @classmethod def generate_post_row(cls, size: int = 1000) -> Iterator[Tuple[str, str]]: for i in range(1, size + 1): yield f"Test post {i}", f"Test content {i}" @classmethod def generate_comment_row(cls, size: int = 100) -> Iterator[str]: for i in range(1, size + 1): yield f"Test comment {i}" @classmethod def get_chunks(cls, iterable: Iterator, chunk_size: int = 100) -> Iterator: iterator = iterable if hasattr(iterable, "__next__") else iter(iterable) for first in iterator: yield itertools.chain([first], itertools.islice(iterator, chunk_size - 1)) 안녕하세요.기존 강의에서 다루시던 대용량 데이터 처리 관련 코드를 참조하여 좀 더 이해하고자 커스텀해서 예시코드를 작성하게 되었습니다.제너레이터, bulk_create 메서드에 대해서 질문이 있습니다.1. 제너레이터는 yield 한 다음 반복문을 이용해 호출합니다. 제너레이트를 호출 한다면 호출할 때 반복문이 여러개 겹치게 되는데 이때 시간복잡도는 어떻게 되는건가요?[generate_post_row 호출 > generate_post_instances 호출 > get_chunks > 호출] 이때 반복문을 많이 사용하게 되는데 어떤식으로 처리가 되는지 궁금합니다. 2. transaction.atomic() 에서 먼저 Post을 bulk_create로 생성한 뒤 해당 Post의 데이터들을 Comment 인스턴스에 넘겨주어 bulk_create를 사용하였는데. 혹시 더 나은 방법이 있을까요?
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
serializer에서 query문 작성
serializer는 직렬화를 담당하는 클래스인데 이 안에서 orm으로 query 메서드를 정의하는 게 괜찮은 방법인가요? layered architecture라고 한다면 repository 클래스를 만들텐데, django에서는 이런 방식이 권장되는 방법인지 궁금합니다.repository class에 query 메서드를 작성하고 queryset에 할당해주는 방법은 괜찮은가요?감사합니다.
-
미해결Django 프레임워크 제대로 배우기 Part.2
csrf 토큰을지정했는데 가끔가다 403오류가 뜨는데 왜그러죠?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Memmo Write Form</title> <style> form > label{ display: inline-block; width: 120px; } form > input{ padding : 4px; margin-bottom : 4px; } </style> </head> <body> <h1>Onememo Form</h1> <form action="http://localhost:8000/onememos/createMemo/" method="POST" id="memoWriteForm"> {%csrf_token%} <label for="memo">한줄메모</label> <input type="text" id="memo" name="memoContent" size="100" placeholder="내용을 입력해주세요." autocomplete="off"> <br> <label for="memo">이름</label> <input type="text" id="memo" name="memoName" size="100" placeholder="내용을 입력해주세요." autocomplete="off"> <br> <label for="memo">이메일</label> <input type="text" id="memo" name="memoEmail" size="100" placeholder="내용을 입력해주세요." autocomplete="off"> <br> </form> <div> <button type="submit" form="memoWriteForm">등록</button> </div> </body> </html>
-
미해결플러터와 장고로 1시간만에 퀴즈 앱/서버 만들기 [무작정 풀스택]
heroku 푸시 에러
! [remote rejected] master -> master (pre-receive hook declined) 이 에러가 계속 나오는데 검색해서 나오는master를 main으로 바꾸거나.. force 하거나... 등등 뭐 나오는 거 다 해 보고 스택오버플러우 챗지피티랑 구글 제미나이한테 물어봤는데 하라는 대로 해도 계속 안 됩니다.. 포기 일보 직전인데 방법이 있을까요.. 참고로 플러터까진 잘 듣다가 파이썬이랑 쟝고 몰라서 맹목적으로 따라하는 중인데 이게 의미가 있는 건지 모르겠습니다.. ㅜ깃랩도 처음 깔았고요(깃허브는 전에 가입만 했음)
-
미해결실리콘밸리 엔지니어와 함께하는 샐러리(Celery)
Task Routing 부분 보니까요
강의에서는 1개의 Queue에 1개의 celery서버가 할당되어 있는 구조인데요. 1개의 Queue에 여러대의 celery 서버가 할당되어 있는 구조도 문제없는 구조 일까요? 예를 들어 celery 3대의 서버가 모두 대기상태일때 동일한 queue를 바라보면 메세지가 하나 날라왔을 때 동시에 3대의 celery 서버가 같은 큐를 처리할 것 같아서요. 그리고 같은 task에 대해서 queue 여러개로 로드밸런스하고 싶다면 어떻게 하는게 좋을까요?
-
해결됨장고 설계철학으로 시작하는 파이썬 장고 입문
개발환경 구축 관련하여 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 기존에 python을 웹에서 설치를 진행 했었습니다.get-commad python 명령어를 실행할 경우 기존에 사용하던 version과 설치 돼 있는 경로가 제가 예전에 만들었던 가상환경에 python.exe.로 표시 돼 있는데 scoop으로 도 python설치를 진행 했을 경우 get-commad python 명령어를 입력했을 때 scoop/apps 안에 있는 파이썬 버젼을 가져오는 방법이 있을까요?