inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

첨부파일 삭제

해결됨

남박사의 파이썬으로 실전 웹사이트 만들기

@blueprint.route("/edit/<idx>", methods=["GET", "POST"]) @login_required def board_edit(idx): board = mongo.db.board try: doc = board.find_one({"_id": ObjectId(idx)}) except Exception: doc = None if not doc: flash("해당 게시물이 존재하지 않습니다.") return redirect(url_for("board.lists")) if str(session.get("id") or "") != str(doc.get("writer_id") or ""): flash("글 수정 권한이 없습니다.") return redirect(url_for("board.lists")) if request.method == "GET": return render_template("edit.html", data=doc, title="글수정") # --- POST --- title = (request.form.get("title") or "").strip() contents = (request.form.get("contents") or "").strip() deleteold = "deleteoldfile" in request.form # ✅ 체크박스 감지 old_file = doc.get("attachfile") filename = old_file f = request.files.get("attachfile") if f and f.filename: base, ext = os.path.splitext(secure_filename(f.filename)) new_name = f"{base}_{int(time.time())}{ext.lower()}" save_dir = app.config["BOARD_ATTACH_FILE_PATH"] os.makedirs(save_dir, exist_ok=True) f.save(os.path.join(save_dir, new_name)) if old_file: board_delete_attach_file(old_file) filename = new_name elif deleteold: if old_file: board_delete_attach_file(old_file) filename = None update_set = {"title": title, "contents": contents} if deleteold and filename is None: board.update_one({"_id": doc["_id"]}, {"$set": update_set, "$unset": {"attachfile": ""}}) else: update_set["attachfile"] = filename board.update_one({"_id": doc["_id"]}, {"$set": update_set}) flash("수정되었습니다.") return redirect(url_for("board.board_view", idx=str(doc["_id"]))) 챗지피티의 도움을 받아 작성했습니다. 근데 삭제 기능만 안되는데 왜 안돼는지 모르겠습니다..

  • python
양성현 댓글 2 좋아요 0 조회수 102

함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?

미해결

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

영상에서 randint 입력하실 때 설명 툴팁 노출되는데 어떻게 하나요? 저는 입력하고 마우스를 함수 위에 올려두어야 설명이 나옵니다.

  • python
depv42 댓글 1 좋아요 0 조회수 159

글자입력 여러번 실행기

미해결

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

안녕하세요, 18. 글자입력 관련하여 질문 드립니다. 수업에 있는 코드 5줄 (액션 ~ 액션.Execute)를 적고 실행하면 한글 파일이 새로 생성되면서 잘 실행되었습니다. 그렇지만 수업때는 마지막 Execute 라인만 실행하면 같은 작업이 여러번 반복이 된다고 하였는데 Pycharm에서 Alt+Shift+E를 눌러서 저 마지막 Execute 라인만 실행해도 같은 문서에 여러번 글자가 써지는 것이 아니라 새로운 한글 파일이 열리면서 실행이 되었습니다. 수업때 보이는 것처럼 하나의 파일에 글자를 여러 번 입력하려면 어떻게 해야 하나요?

  • python
  • 한컴오피스
이두형 댓글 1 좋아요 0 조회수 107

키움만 가능한가요?

해결됨

(GPT-5) 챗GPT와 파이썬으로 주식 자동매매 앱 및 웹 투자 리포트 만들기

키움만 가능한가요? 기존에 한국투자증권을 사용하고 있는데 다를까요?

  • python
  • 인공지능(ai)
  • chatgpt
  • ai-활용-(ax)
우주 댓글 2 좋아요 0 조회수 159

미분 결과가 왜 저렇게 나오는지 궁금합니다.

미해결

강화학습 입문에서 Deep Q-learning/Policy Gradient까지

6:49쯤에, MSBE = (delta_{t+1})^2의 미분 결과가 2*(delta_{t+1})* (\partial(delta_{t+1}}); 합성함수의 미분, 의 형태가 아닌 화면에 나오는 것처럼 미분이 되는지 궁금합니다. 추가로 policy improvement step에서 각 action에 대해서 value가 높은 weight로 parameters을 업데이트 하면서 자동적으로 최적pi를 찾게 된다고 보는 게 맞는 이해일까요?

  • python
  • 딥러닝
  • 강화학습
  • pytorch
최규형 댓글 1 좋아요 0 조회수 96

system 메세지는 정의가 되어 있는 건가요?

미해결

입문자를 위한 LangChain 기초 — v1.0+ 업데이트

안녕하세요. 소스 내용중에 아래와 같은 것이 있습니다. ("system":"이 시스템은 여행 전문가 입니다."), ("user":"{user_input}"), 사용자의 질문이 뭐가 들어올지 모르는 상황에서 여행 전문가라고 지정하는 것이 의미가 있는 것인지요?

  • python
  • llm
  • langchain
  • openai-api
TaeJoon Park 댓글 2 좋아요 0 조회수 71

설문 제출관련 문의

해결됨

《Do it! LLM을 활용한 AI 에이전트 개발 입문》 완독 챌린지

도서 내용 관련 질문은 Do it! 스터디룸에 남겨주시면 빠르게 확인이 가능합니다. *Do it! 스터디룸: https://cafe.naver.com/doitstudyroom 기타 질문은 이곳에 남겨주세요! 알림 글중에 *챌린지 설문을 제출해 주시지 않은 분들께는 기프티콘 발송이 어렵습니다. 설문을 제출하셨는지 꼭 확인해 주세요! 1주차 미션과제는 제출했는데 설문 제출하는 곳이 별도 있는지요?

  • python
  • 업무-생산성
  • 인공지능(ai)
  • chatgpt
  • ai-활용-(ax)
김성중 댓글 1 좋아요 1 조회수 65

설명하실 때 해상도를 작게 하고 해주세요.

미해결

파이썬과 엑셀로 하는 업무자동화

설명하실 때, 창을 너무 작게 하고 설명해서 전체 창으로 봐도 잘 안보입니다. 설명 뿐만 아니라 이 강의를 보는 사람입장에서도 제작해주시면 좋겠습니다.

  • python
  • excel
cool619 댓글 1 좋아요 0 조회수 77

vscode, 파이썬

해결됨

(GPT-5) 챗GPT와 파이썬으로 주식 자동매매 앱 및 웹 투자 리포트 만들기

저 여기까지는 다 됬다고 뜨는데 들어가서 파이썬 버전을 선택할 때는 이거만 뜨는데 어떻게 해야 하나용??

  • python
  • 인공지능(ai)
  • chatgpt
  • ai-활용-(ax)
samsuni680 댓글 4 좋아요 0 조회수 203

아래 질문 내용 추가 질문 사항 입니다.

미해결

배달앱은 어떻게 내 주변의 맛집을 찾을까?

안녕하세요 우선 답변 정말 감사드립니다. 일단 말씀 해주신대로 해당 프로젝트에서 set PYTHONUTF8=1 명령어를 입력하고 다시 실행 했지만 계속 동일한 에러가 발생하고 있습니다. poetry shell 해당 명령어도 잘 되는 걸까요? 음... 라이브러리 설치가 안되서.. 강의 진행이 더 이상 안되네요... ChatGPT 도움도 요청 해보았지만 매끄러운 답변은 못 해주고 있어서 어쩔 수 없이 여기로 질문 글 드립니다. 기왕 돈 지불 하고 구입 한 강의 인데.. 여기서 포기 할 수 없습니다.ㅠㅠ 그래도 끝까지 들어야 하지 않나 해서요... 답변 부탁드립니다 ㅠ,ㅠ 참고로 OS 는 윈도우 입니다.

  • python
  • mongodb
  • FastAPI
리나 댓글 1 좋아요 0 조회수 98

기출문제 말고 선생님께서 문제는 안만들어주시나요 ?

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요 현재 3회차 3번째 도전입니다. n잡에서 수강했고 개발자 취준생이라.. 기본적인 문법이나 이런건 다 알고있는데요.. 기출문제 풀이만 해주시나요 ?? 제가 원하는건 모의고사 처럼 같은유형의 다른 문제를 풀고싶거든요 ! 궁금해서 여쭤봅니다.

  • python
  • java
  • c
  • 정보처리기사
김찬우 댓글 2 좋아요 0 조회수 153

chapter05_02 클로저 질문사항 !

미해결

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

def closure_ex1(): # Free Variable # 클로저 영역 series = [] # 함수 밖에 선언된 변수임에도 불구하고, 함수 호출이 끝나도 사라지지않고 계속 유지됨 def averager(v): series.append(v) print("inner >> {} / {}" .format(series, len(series))) return sum(series) / len(series) return averager avg_closure1 = closure_ex1() !!!해당부분은 nonlocal 선언을 하지않았는데 어떻게 자유 변수로 설정이되는건가요?!!!

  • python
  • django
leavingko 댓글 1 좋아요 0 조회수 80

보조 기억 장치와 보조기억장치가 바뀐거 같습니다.

미해결

한국인이 좋아하는 속도로 때려넣는 파이썬

[프로그램 설치 오류 문의] 프로그램 설치 오류 발생시 사용중인 컴퓨터의 환경에 대한 상세 스크린샷을 함께 제공해 주셔야 합니다! 또한, 강의에서 소개한 내용과 완전히 동일한 방식으로 설치를 진행하셨는지도 재확인 부탁드려요! [코드 실행 오류 문의] 반드시 코드와 에러메시지의 스크린샷을 첨부해 주셔야 합니다! 둘 중 하나라도 누락되면 도움을 드릴 수 없습니다! [그 외 오류 문의] 그 외 오류가 발생한 경우 최대한 스크린샷이나 코드 등, 상황을 전달할 수 있는 자료를 수집하시어 함께 제공해 주세요.

  • python
shincs 댓글 2 좋아요 0 조회수 84

macOS에서 docker 설치

미해결

Airflow 마스터 클래스

안녕하세요 mac에서 docker 설치하려고 하는데 apt-get command not found가 뜹니다. 찾아보니 apt 명령어는 macOS에서 동작 안한다고 하는데 어떻게 진행하면 될까요?

  • python
  • airflow
wonseok.choi 댓글 2 좋아요 0 조회수 120

커리큘럼문의

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

언어과목에서 다 맞는 목표가 아니면 커리큘럼 중에 섹션 7, 10, 12는 안봐도 될까요?

  • python
  • java
  • c
  • 정보처리기사
댓글 1 좋아요 0 조회수 54

검색기능 질문

해결됨

남박사의 파이썬으로 실전 웹사이트 만들기

from flask import Flask from flask import request from flask import render_template from flask_pymongo import PyMongo from datetime import datetime from bson.objectid import ObjectId from flask import abort from flask import redirect from flask import url_for import time import math app = Flask(__name__) app.config["MONGO_URI"] = "mongodb://localhost:27017/myweb" mongo = PyMongo(app) @app.template_filter("formatdatetime") def format_datetime(value): if value is None: return "" now_timestamp = time.time() offset = datetime.fromtimestamp(now_timestamp) - datetime.utcfromtimestamp(now_timestamp) value = datetime.fromtimestamp((int(value) / 1000)) + offset return value.strftime('%Y-%m-%d %H:%M:%S') @app.route("/list") def lists(): #페이지 값(값이 없는 경우 기본값은 1) page = request.args.get("page", 1, type=int) #한페이지당 몇개의 게시물을 출력할지 limit = request.args.get("limit", 7, type = int) search = request.args.get("search", -1, type=int) keyword = request.args.get("keyword", type=str) #최종적으로 완성된 쿼리를 만들 변수 query = {} #검색어 상태를 추가할 리스트 변수 search_list = [] if search == 0: search_list.append({"title":{"$regex": keyword}}) elif search ==1: search_list.append({"contents":{"$regex": keyword}}) elif search ==2: search_list.append({"title":{"$regex": keyword}}) search_list.append({"contents":{"$regex": keyword}}) elif search == 3: search_list.append({"name":{"$regex": keyword}}) #검색 대상이 한개라도 존재할 경우 query 변수에 $or 리스트를 쿼리 합니다. if len(search_list) > 0: query = {"$or": search_list} print(query) board = mongo.db.board datas = board.find(query).skip((page - 1)*limit).limit(limit) #게시물의 총 갯수 tot_count = board.find(query).count() #마지막 페이지의 수를 구합니다. last_page_num = math.ceil(tot_count / limit) #페이지 블럭을 5개씩 표기 block_size = 5 #현재 블럭의 위치 block_num=int((page-1)/ block_size) #블럭의 시작 위치 block_start = int((block_size * block_num) +1) #블럭의 끝 위치 block_last = math.ceil(block_start +(block_size - 1)) return render_template( "list.html", datas = datas, limit=limit, page=page, block_start=block_start, block_last=block_last, last_page_num=last_page_num, search=search, keyword=keyword) @app.route("/view/<idx>") def board_view(idx): # idx = request.args.get("idx") if idx is not None: board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if data is not None: result = { "id" : data.get("_id"), "name" : data.get("name"), "title" : data.get("title"), "contents" : data.get("contents"), "pubdate" : data.get("pubdate"), "view" : data.get("view"), } return render_template("view.html", result=result) return abort(400) @app.route("/wirte", methods = ["GET", "POST"]) def board_wirte(): if request.method == "POST": name = request.form.get("name") title = request.form.get("title") contents = request.form.get("contents") print(name, title, contents) current_utc_time = round(datetime.utcnow().timestamp() * 1000) board = mongo.db.board post = { "name" : name, "title" : title, "contents" : contents, "pubdate" : current_utc_time, "view" : 0, } x = board.insert_one(post) print(x.inserted_id) return redirect(url_for("board_view", idx=x.inserted_id)) else: return render_template("wirte.html") if __name__ == "__main__": app.run(debug = True) <script> function search() { var v_search = document.getElementById("search").value; var v_keyword = document.getElementById("keyword").value; if(v_search == "" || v_keyword == ""){ return false; } else{ self.location.href="{{url_for('lists')}}?search=" + v_search + "&keyword=" + v_keyword; } } </script> {% if datas.count() > 0%} <table> <thead> <tr> <td>번호</td> <td>제목</td> <td>이름</td> <td>날짜</td> <td>조회수</td> </tr> </thead> <tbody> <!--반복되는 구간--> {%for data in datas%} <tr> <td>{{loop.index + (page - 1) * limit}}</td> <td><a href="{{url_for('board_view', idx=data._id, page=page, search=search, keyword=keyword)}}">{{data.title}}</a></td> <td>{{data.name}}</td> <td>{{data.pubdate | formatdatetime}}</td> <td>{{data.view}}</td> </tr> <!--반복되는 구간 끝--> {%endfor%} </tbody> </table> {%if block_start -1 > 0%} <a href="{{url_for('lists', page=block_start - 1, search=search, keyword=keyword)}}">[이전]</a> {%endif%} {%for i in range(block_start, block_last + 1)%} {% if i > last_page_num%} {%else%} {%if i == page%} <b>{{i}}</b> {%else%} <a href="{{url_for('lists', page=i, search=search, keyword=keyword)}}">{{i}}</a> {%endif%} {%endif%} {%endfor%} {%if block_last < last_page_num%} <a href="{{url_for('lists', page=block_last+ 1, search=search, keyword=keyword)}}">[다음]</a> {%endif%} <select name="search" id="search"> <option value="">검색대상</option> <option value="0">제목</option> <option value="1">내용</option> <option value="2">제목 + 내용</option> <option value="3">작성자</option> </select> <input type="text" name="keyword" id="keyword"> <input type="button" value="검색" onclick="search()"> {% else %} <h3>데이터가 없습니다.</h3> {%endif%} 분명 똑같이 했는데 왜 검색이 안되고 무반응인지 잘 모르겠어요. 뭐가 문제일까요?

  • python
양성현 댓글 2 좋아요 0 조회수 91

템플릿 변수에 대한 오류

미해결

Airflow 마스터 클래스

안녕하세요 CLI로 Trigger 기능을 수행하는 부분 강의를 듣던 중에, Web UI에서 Trigger를 누르면 정상적으로 수행 되지만, 쉘 스크립트 커맨드로 airflow dags trigger <DAG 이름>이라는 명령어를 실행했을 때 아래와 같은 실패 로그가 나타나서 문의드립니다. 혹시 커맨드라인으로 실행하면 {{data_interval_end}} 와 같은 템플릿을 적용할 수 없나요?

  • python
  • 데이터-엔지니어링
  • airflow
덕인떡집 댓글 2 좋아요 0 조회수 74

ConnectionRefusedError: [WinError 10061]

해결됨

실전! Django 입문 [최신 5.2 버전]

ConnectionRefusedError: [WinError 10061] Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte 에러가 발생했는데 찾아보니 EMAIL_USE_TLS = False EMAIL_USE_SSL = True EMAIL_PORT = 465 위의 코드로도 시도를 해보라해서 해봤지만 계속 동일한 에러가 발생했습니다. 강의에서 사용된 운영체제는 맥 os이고 저는 윈도우 환경에서 실행했는데 윈도우환경에서 자주 발생하는 에러라고 하는데 해결방법을 찾기가 어려워서 문의남깁니다.

  • python
  • django
  • aws
  • rest-api
  • drf
M2CL 댓글 2 좋아요 0 조회수 142

CSRF_COOKIE_NAME에러

미해결

실전! Django 입문 [최신 5.2 버전]

settings.CSRF_COOKIE_NAME이라는게 존재하지 않는다고 나와요

  • python
  • django
  • aws
  • rest-api
  • drf
개브라운 댓글 2 좋아요 0 조회수 107

제본

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

제본을하려고 합니다! 총 매수가 어느정도 나오나요??

  • python
  • java
  • c
  • 정보처리기사
boll1235 댓글 2 좋아요 0 조회수 131

인기 태그

인프런 TOP Writers

주간 인기글