(.venv) PS C:\Users\LG\PycharmProjects\pragmatic> python manage.py runserver Watching for file changes with StatReloader Performing system checks... Exception in thread django-main-thread: Traceback (most recent call last): File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\core\checks\ urls.py ", line 136, in check_custom_error_handlers handler = resolver.resolve_error_handler(status_code) File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\urls\ resolvers.py ", line 732, in resolve_error_handler callback = getattr(self.urlconf_module, "handler%s" % view_type, None) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\utils\ functional.py ", line 47, in get res = instance.__dict__[ self.name ] = self.func(instance) ~~~~~~~~~^^^^^^^^^^ File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\urls\ resolvers.py ", line 711, in urlconf_module return import_module(self.urlconf_name) File "C:\Users\LG\AppData\Local\Programs\Python\Python313\Lib\importlib\__init__.py", line 88, in import_module return bootstrap. gcd_import(name[level:], package, level) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in gcd import File "<frozen importlib._bootstrap>", line 1360, in find and_load File "<frozen importlib._bootstrap>", line 1331, in find and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in load unlocked File "<frozen importlib._bootstrap_external>", line 1026, in exec_module File "<frozen importlib._bootstrap>", line 488, in call with_frames_removed File "C:\Users\LG\PycharmProjects\pragmatic\pragmatic\ urls.py ", line 25, in <module> path('account/', include('accountapp.urls')), ~~~~~~~^^^^^^^^^^^^^^^^^^^ File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\urls\ conf.py ", line 39, in include urlconf_module = import_module(urlconf_module) File "C:\Users\LG\AppData\Local\Programs\Python\Python313\Lib\importlib\__init__.py", line 88, in import_module return bootstrap. gcd_import(name[level:], package, level) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in gcd import File "<frozen importlib._bootstrap>", line 1360, in find and_load File "<frozen importlib._bootstrap>", line 1331, in find and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in load unlocked File "<frozen importlib._bootstrap_external>", line 1026, in exec_module File "<frozen importlib._bootstrap>", line 488, in call with_frames_removed File "C:\Users\LG\PycharmProjects\pragmatic\accountapp\ urls.py ", line 4, in <module> from pragmatic.urls import urlpatterns ImportError: cannot import name 'urlpatterns' from partially initialized module 'pr agmatic.urls' (most likely due to a circular import) (C:\Users\LG\PycharmProjects\pragmatic\pragmatic\ urls.py ) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\LG\AppData\Local\Programs\Python\Python313\Lib\ threading.py ", line 1041, in bootstrap inner self.run () ~~~~~~~~^^ File "C:\Users\LG\AppData\Local\Programs\Python\Python313\Lib\ threading.py ", line 992, in run self._target(*self._args, **self._kwargs) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\utils\ autoreload.py ", line 64, in wrapper fn(*args, **kwargs) ~~^^^^^^^^^^^^^^^^^ File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\core\management\commands\ runserver.py ", line 134, in inner_run self.check(display_num_errors=True) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\core\management\ base.py ", line 486, in check all_issues = checks.run _checks( app_configs=app_configs, ...<2 lines>... databases=databases, ) File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\core\checks\ registry.py ", line 88, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\core\checks\ urls.py ", line 138, in check_custom_error_handlers path = getattr(resolver.urlconf_module, "handler%s" % status_code) ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\utils\ functional.py ", line 47, in get res = instance.__dict__[ self.name ] = self.func(instance) ~~~~~~~~~^^^^^^^^^^ File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\urls\ resolvers.py ", line 711, in urlconf_module return import_module(self.urlconf_name) File "C:\Users\LG\AppData\Local\Programs\Python\Python313\Lib\importlib\__init__.py", line 88, in import_module return bootstrap. gcd_import(name[level:], package, level) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in gcd import File "<frozen importlib._bootstrap>", line 1360, in find and_load File "<frozen importlib._bootstrap>", line 1331, in find and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in load unlocked File "<frozen importlib._bootstrap_external>", line 1026, in exec_module File "<frozen importlib._bootstrap>", line 488, in call with_frames_removed File "C:\Users\LG\PycharmProjects\pragmatic\pragmatic\ urls.py ", line 25, in <module> path('account/', include('accountapp.urls')), ~~~~~~~^^^^^^^^^^^^^^^^^^^ File "C:\Users\LG\PycharmProjects\pragmatic\.venv\Lib\site-packages\django\urls\ conf.py ", line 39, in include urlconf_module = import_module(urlconf_module) File "C:\Users\LG\AppData\Local\Programs\Python\Python313\Lib\importlib\__init__.py", line 88, in import_module return bootstrap. gcd_import(name[level:], package, level) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in gcd import File "<frozen importlib._bootstrap>", line 1360, in find and_load File "<frozen importlib._bootstrap>", line 1331, in find and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in load unlocked File "<frozen importlib._bootstrap_external>", line 1026, in exec_module File "<frozen importlib._bootstrap>", line 488, in call with_frames_removed File "C:\Users\LG\PycharmProjects\pragmatic\accountapp\ urls.py ", line 4, in <module> from pragmatic.urls import urlpatterns ImportError: cannot import name 'urlpatterns' from partially initialized module 'pr agmatic.urls' (most likely due to a circular import) (C:\Users\LG\PycharmProjects\pragmatic\pragmatic\ urls.py ) 강의랑 똑같이 코드를 치고 python manage.py runserver을 입력해서 실행하려 하는데 위 처럼 에러가 뜨는데 코드는 분명 똑같이친거 같은데 뭐가 잘못된건지 모르겠어요ㅠㅠ
초기에 pnpm으로 example 다운받고 pnpm dev로 실행 후 기능을 사용해보면, 블로그의 글을 클릭하면 아래처럼 에러가 나오는데 이유와 해결방법이 어떻게 되나요? 아래는 명령창에 나오는 에러입니다. Error: Route "/blog/[slug]" used `params.slug`. `params` should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis at eval (app\blog\[slug]\page.tsx:55:70) at Array.find (<anonymous>) at Blog (app\blog\[slug]\page.tsx:55:34) 53 | 54 | export default async function Blog({ params }) { > 55 | let post = await getBlogPosts().find((post) => post.slug === params.slug); | ^ 56 | if (!post) { 57 | notFound(); // ?룷?뒪?듃媛� ?뾾?쑝硫? 404 ?럹?씠吏�瑜? 諛섑솚 58 | } 殊? [Error: A React Element from an older version of React was rendered. This is not supported. It can happen if: - Multiple copies of the "react" package is used. - A library pre-bundled an old copy of "react" or "react/jsx-runtime". - A compiler tries to "inline" JSX instead of using the runtime.] { digest: '685037146' } Error: Route "/blog/[slug]" used `params.slug`. `params` should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis at eval (app\blog\[slug]\page.tsx:15:64) at Array.find (<anonymous>) at Module.generateMetadata (app\blog\[slug]\page.tsx:15:28) 13 | 14 | export function generateMetadata({ params }) { > 15 | let post = getBlogPosts().find((post) => post.slug === params.slug) | ^ 16 | if (!post) { 17 | return 18 | }
선생님이 이번 강의에서 서버액션을 이용한 서버컴포넌트 재검증에 대한 설명을 해주셨는데요. 방금 강의를 듣고나니 불현듯, 어? 그럼 클라이언트 컴포넌트에서, post요청을 날리면 서버컴포넌트 업데이트를 어떻게 치지? 방금 설명해주신것처럼 모든 post 요청을 서버액션으로 만든 후에 revalidatePath나 revalidateTag를 사용해야하는건가? 라는 의문점이 들었습니다. 보통 실무에서는 프론트가 다이렉트로 db에 접근하는 일이 거의 없기 때문에, 백엔드가 항상 붙어있는데 그럼 결국 클라이언트 컴포넌트에서 서버액션을 통해 post요청을 보내고, 웹서버측에서는 백엔드에 post요청을 보내는식의 2번작업이 일어나야만, post요청이 끝나고 서버컴포넌트의 업데이트가 가능한걸까요 ?
App 라우터 방식에서 쿼리 스트링을 불러오는 방식이 강의를 보니까 두 가지로 확인 됩니다. 두 가지의 차이점이 무엇 인지와 두 개를 병행하면서 사용해도 상관없는지 확인 부탁 드립니다. 1. useSearchParams( ) 사용 export default function Searchbar() { const router = useRouter(); const searchParams = useSearchParams(); //searchParams 훅은 쿼리스트링을 가져오는 것인데 빌드타임에는 //쿼리스트링을 가져올 수 없으므로 빌드타임에서 오류가 발생한다. //그래서 해당 페이지는 사전렌더링에서 제외시켜야 한다. const [search, setSearch] = useState(""); const q = searchParams.get("q"); 2. searchParams를 함수에 인자로 넣은 경우 export default async function Page({ searchParams, }: { searchParams: Promise<{ q?: string; }>; }) { const { q } = await searchParams;
안녕하세요, 제가 어떤식으로 작동하는지 보고 싶어서 먼저 다운 받아서 실행해봤는데, 이런 에러가 발생합니다. 채팅방 생성까진 되지만 채팅방으로 들어가면 1초후에 팅겨 http://127.0.0.1:8000/chat/ 주소로 자동 이동됩니다. AttributeError: 'ChatConsumer' object has no attribute 'channel_name'. Did you mean: 'channel_layer'? WebSocket DISCONNECT /ws/chat/2/chat/ [127.0.0.1:50136] HTTP GET /chat/ 200 [0.01, 127.0.0.1:50118] 질문 받아주셔서 감사합니다.
4월에 구매하여 늦게서야 해당 강의를 수강 중인데 업데이트 된 강의 쿠폰 발급하는걸 몰랐네요ㅠㅠ 혹시 현강의랑 많이 다를까요? 어떤 차이점이 있는지 궁금해요. 듣는다고 하면 중간부터 들어야하나요. 현재 eslint부분 듣고있는데 애매하네요. 그리고 듣는다는 가정 하에 쿠폰 재발급이 가능한지 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 교수님. 강의 정말 잘 듣고있습니다. 교수님의 fast api를 듣고싶은 수강생인데 환경때문에 어디다가 질문해야할지 고민하다가 여기다가라도 써봅니다.(죄송합니다.) 저는 인공지능을 활용해 제가 원하는 앱, 웹을 만들고 싶은 꿈을 가지고 교수님 강의를 들으며 공부하고 있습니다. 그러던 중 여기까지 오게 되었고(머신러닝 완벽 가이드 -> cnn -> object detection) 다음 강의로 fast api 강의를 듣고자 합니다. 여기서 질문을 드리겠습니다. 제가 현재 군인으로 사지방에서 공부를 진행하는데 github의 codespace 환경만으로도 수행하는데 문제는 없을까요? sql, html에 대해서는 아직 공부를 안해봤는데 어느정도의 지식을 알아야 할까요?
이런 에러가 발생했습니다. routing.py websocket_urlpatterns = [ path("ws/echo/", EchoConsumer.as_asgi()), ] path로 추가를 해주려고 했는데, 선생님께서는 추가 하지 않고 진행하셨던거같아서요. 지금 에러나는 부분은 admin으로 카드 추가하고 liveblog에 제대로 뜨는지 확인하는 부분이였습니다. WebSocket DISCONNECT /ws/liveblog/ [127.0.0.1:50574] WebSocket HANDSHAKING /ws/liveblog/ [127.0.0.1:50579] Exception inside application: No route found for path 'ws/liveblog/'. Traceback (most recent call last): File "/Volumes/code/mydjangochat/venv/lib/python3.12/site-packages/django/contrib/staticfiles/ handlers.py ", line 101, in call return await self.application(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Volumes/code/mydjangochat/venv/lib/python3.12/site-packages/channels/ routing.py ", line 62, in call return await application(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Volumes/code/mydjangochat/venv/lib/python3.12/site-packages/channels/ routing.py ", line 134, in call raise ValueError("No route found for path %r." % path) 이런식의 에러가 뜨고 자동으로 Page not found라고 뜹니다. 감사합니다.
안녕하세요. 좋은 강의 잘 듣고 있습니다. "2.16) SSG 4. 폴백옵션 설정하기" 강의를 듣다가 궁금한 점이 생겨서 질문남깁니다! 홈 경로는 getStaticProps 함수를 사용해 빌드 타임에 사전 렌더링이 이루어지고 있습니다. Next App을 빌드 후에 홈 / 경로에서 네트워크 탭을 살펴보다가 현재 화면 내에서 인덱스에 해당하는 Json 응답을 받은 것을 보았습니다. 하나를 열어보니 아래와 같습니다. // 6.json?id=6 { "pageProps": { "book": { "id": 6, "title": "프론트엔드 성능 최적화 가이드", "subTitle": "웹 개발 스킬을 한 단계 높여 주는", "description": "...", "author": "유동균", "publisher": "인사이트", "coverImgUrl": "https://shopping-phinf.pstatic.net/main_3562758/35627588630.20230704084326.jpg" } }, "__N_SSG": true } 제가 이해한 바로는 / 경로에 진입해서 초기 요청이 이루어지면 서버는 사전에 렌더링 된 HTML 페이지를 응답한 이후 현재 페이지에 필요한 모든 자바스크립트 파일을 JS Bundle로 전달합니다. 네트워크 탭에서 localhost HTML 문서를 확인하고 이후에 http://localhost:3000/_next/static/chunks/pages/book/%5Bid%5D-4bfc2418ccf58b5f.js JS Bundle을 응답받은 것을 확인했습니다. 그리고 현재 페이지에서 이동 가능성이 있는 페이지들에 한해 사전에 요청이 이루어집니다. js 파일이 전달되어야 하지만 북( /book/[id] )페이지가 SSG 방식으로 사전 렌더링이 이루어지므로 데이터를 뿌려주기만 하면 되니까 json 형식으로 응답이 온 것이 아닐까 생각했습니다. (북페이지를 SSR 방식으로 바꾸니 북페이지의 js 파일이 전달되었습니다.) 이후 Link 컴포넌트인 도서 목록 중 하나를 클릭하면 자바스크립트 코드를 실행시켜 컴포넌트를 교체하는 CSR 방식으로 페이지를 이동합니다. Q. SSG 방식에서는 사전 렌더링의 응답으로 Json 형식으로 전달받아 새로운 페이지를 보여주는 제가 이해하고 있는 방식이 맞는지 궁금합니다. 다른 하나는, 현재 화면에서 네트워크 요청(예: 6.json?id=6)이 무수히 많이 이루어진 것을 보았습니다. 그래서 Link 컴포넌트의 prefetch 값을 false로 설정하여 각 컴포넌트에 마우스를 호버했을 때 프리페칭이 이루어지도록 했습니다. 그러자 마우스를 호버하면 프리페칭이 이루어졌지만 마우스를 호버할 때마다 요청이 이루어져 의문이 생겼습니다. Q. 잦은 요청이 서버에 부하를 주는 것은 아닌지, 이를 개선할 수 있는 방법이 있는지 궁금합니다. 긴 글 읽어주셔서 감사합니다. 아래 코드 첨부하였습니다! 📄 /pages/index.tsx import SearchableLayout from "@/components/Searchable-layout"; import BookItem from "@/components/Book-item"; import { InferGetStaticPropsType } from "next"; import fetchBooks from "@/lib/fetch-books"; import style from "./index.module.css"; import fetchRandomBooks from "@/lib/fetch-random-books"; export const getStaticProps = async () => { const [allBooks, recoBooks] = await Promise.all([ fetchBooks(), fetchRandomBooks(), ]); return { props: { allBooks, recoBooks, }, }; }; export default function Home({ allBooks, recoBooks, }: InferGetStaticPropsType<typeof getStaticProps>) { return ( <div className={style.container}> <section> <h3>지금 추천하는 도서</h3> {recoBooks.map((book) => ( <BookItem key={book.id} {...book} /> ))} </section> <section> <h3>등록된 모든 도서</h3> {allBooks.map((book) => ( <BookItem key={book.id} {...book} /> ))} </section> </div> ); } Home.getLayout = (page: NextPageWithLayout) => { return <SearchableLayout>{page}</SearchableLayout>; }; 📄 /pages/book/[id].tsx /* eslint-disable jsx-a11y/alt-text */ /* eslint-disable @next/next/no-img-element */ import fetchBook from "@/lib/fetch-one-book"; import style from "./[id].module.css"; import { GetStaticPropsContext, InferGetStaticPropsType } from "next"; export const getStaticPaths = () => { return { paths: [ { params: { id: "1" } }, { params: { id: "2" } }, { params: { id: "3" } }, ], fallback: "blocking", }; }; export const getStaticProps = async (context: GetStaticPropsContext) => { const { id } = context.params!; const book = await fetchBook(Number(id)); return { props: { book, }, }; }; export default function Page({ book, }: InferGetStaticPropsType<typeof getStaticProps>) { if (!book) return "문제가 발생했습니다. 다시 시도해주세요."; const { title, subTitle, description, author, publisher, coverImgUrl } = book; return ( <div className={style.container}> <div className={style.cover_img_container} style={{ backgroundImage: `url('${coverImgUrl}')` }} > <img src={coverImgUrl} /> </div> <div className={style.title}>{title}</div> <div className={style.subTitle}>{subTitle}</div> <div className={style.author}> {author} | {publisher} </div> <div className={style.description}>{description}</div> </div> ); }
프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)
In[ ]으로 뜨지 않고 In 없이 [ ]만 뜸 ESC와 Enter를 눌러도 파란색으로만 뜸 초록색으로 뜨지 않음 Help에 Show Keyboard Shortcuts를 들어갔을 때 강사님한테 뜨는 것과 기본적으로 양과 구체성이 다름 상단에 Insert 메뉴가 없음 이것들은 버전의 차이일까요?