172만명의 커뮤니티!! 함께 토론해봐요.
해결됨
남박사의 파이썬으로 실전 웹사이트 만들기
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%} 분명 똑같이 했는데 왜 검색이 안되고 무반응인지 잘 모르겠어요. 뭐가 문제일까요?
양성현
2025-09-23T11:26:23.659Z
댓글 2
좋아요 0
조회수 93
해결됨
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
집에서 안되서, 회사 컴퓨터에서 해도 동일하네요. 10) 복사한 내용을 마우스 우클릭으로 붙여넣기를 했는데, 아래와 같은 오류가 나옵니다. 왠지... ".nvm" 요넘 부터 뭔가 실행이 안된 듯 싶어요. 이정도면 다른 분들도 모두 비슷한 오류가 나올 듯 싶어요. 가장 쉬운 단계에서 넘어가질 못하니... 앞으로가 많이 걱정되네요. ㅎㅎㅎ
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
KeeWoong Hong
2025-09-23T06:21:35.880Z
댓글 3
좋아요 0
조회수 244
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
> /ide cursor ⎿ Installed extension to Cursor Cursor가 안 열려요. 따로 설정해야하는게 있나요?
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
gmldnjs0402
2025-09-23T05:11:38.911Z
댓글 2
좋아요 0
조회수 83
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
I'll help you set up your statusline configuration based on your shell's PS1 setting. ⏺ statusline-setup (Configure statusline from PS1) ⎿ Error editing file Create (.claude/settings.json) +7 more tool uses ╭──────────────────────────────────────────────────────────────────────────────╮ │ Edit file │ │ ╭──────────────────────────────────────────────────────────────────────────╮ │ │ │ .claude/settings.json │ │ │ │ │ │ │ │ 1 + { │ │ │ │ 2 + "statusLine": { │ │ │ │ 3 + "type": "command", │ │ │ │ 4 + "command": "input=$(cat); printf \"$(echo \"$input\" | jq │ │ │ │ + -r '.model.display_name') | $(basename \"$(echo \"$input\" | jq │ │ │ │ + -r '.workspace.current_dir')\") | $(echo \"$input\" | jq -r │ │ │ │ + '.output_ style.name ') style\"" │ │ │ │ 5 + } │ │ │ │ 6 + } │ │ │ │ 7 \ No newline at end of file │ │ │ ╰──────────────────────────────────────────────────────────────────────────╯ │ │ Do you want to make this edit to settings.json ? │ │ 1. Yes │ │ 2. Yes, allow all edits during this session (shift+tab) │ │ ❯ 3. No, and tell Claude what to do differently (esc) 어떻게 설정해야하나요?
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
gmldnjs0402
2025-09-23T04:36:16.097Z
댓글 2
좋아요 0
조회수 148
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
커서로 진행하고 싶은데, 커서구독해서 클로드 사용해도 괜찮나요? 꼭 터미널에서 실행해서 진행해야하나 해서요
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
gmldnjs0402
2025-09-23T00:20:27.524Z
댓글 2
좋아요 0
조회수 483
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
다시 처음부터 오류를 찾고 해결하려고 해도 Node.js에서도 계속 막히네요. 총 몇 시간째인지도 모르겠어요.!!!!
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
고은아
2025-09-22T22:47:59.131Z
댓글 2
좋아요 0
조회수 75
미해결
Airflow 마스터 클래스
안녕하세요 CLI로 Trigger 기능을 수행하는 부분 강의를 듣던 중에, Web UI에서 Trigger를 누르면 정상적으로 수행 되지만, 쉘 스크립트 커맨드로 airflow dags trigger <DAG 이름>이라는 명령어를 실행했을 때 아래와 같은 실패 로그가 나타나서 문의드립니다. 혹시 커맨드라인으로 실행하면 {{data_interval_end}} 와 같은 템플릿을 적용할 수 없나요?
덕인떡집
2025-09-22T22:10:18.450Z
댓글 2
좋아요 0
조회수 74
해결됨
실전! 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
2025-09-22T15:18:12.240Z
댓글 2
좋아요 0
조회수 143
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
node.js설치시 node: command not found 오류가 납니다.
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
이석호
2025-09-22T13:11:42.425Z
댓글 2
좋아요 0
조회수 208
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
안녕하세요, node.js 설치시 Linux, nvm을 선택하고 Copy해서 Linux창에서 설치하였는데, 첨부한 그림 파일과 같은 오류메세지가 뜹니다. nvm을 찾을 수 없다고 하는 것 같은데, 혹시 오류를 어떻게 해결할 수 있을지 여쭙니다. 참고로 node.js 다운로드 창에 들어가보니 버전이 V22.19.0으로 되어 있습니다. 책에는 V22.18.0으로 되어 있습니다. 그런데 V22.18.0버전은 더 이상 node.js 다운로드 페이지에서 찾을 수 없습니다.
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
이석호
2025-09-22T13:04:57.508Z
댓글 2
좋아요 0
조회수 240
미해결
실전! Django 입문 [최신 5.2 버전]
settings.CSRF_COOKIE_NAME이라는게 존재하지 않는다고 나와요
python django aws rest-api drf
개브라운
2025-09-22T12:33:53.523Z
댓글 2
좋아요 0
조회수 108
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
책을 보면 윈도우의 경우 wsl에 우분투올려서 진행하는데, 금일 기준으로는 클로드코드 네이티브 윈도우용도 있는 것으로 보이는데 그걸로 진행해도 뒷부분 진행에 문제가 없을까요?
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
kykim818
2025-09-22T12:30:45.233Z
댓글 2
좋아요 0
조회수 169
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
https://claude.ai/settings/billing 에러문제로 결제가 되질 않아서 클로드로드 측에 문의해서 받은 결제 링크입니다. 이걸로 결제하니 오류도 발생하지 않더라구요.
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
불을뿜는 냉기마법사
2025-09-22T12:30:26.074Z
댓글 2
좋아요 1
조회수 965
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
저 주소를 복사해 브라우저에 직접 붙여넣었더니 계속 결제 실패하는데 홈 클로드에 들어가서 결제해도 되나요? 계속 결제 실패하면 어떻게 하나요?ㅠ
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
고은아
2025-09-22T12:13:55.757Z
댓글 3
좋아요 0
조회수 545
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
설문진행, 도서등록, 37페이지까지 결제하고 완료 했습니다.
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
불을뿜는 냉기마법사
2025-09-22T08:35:40.282Z
댓글 3
좋아요 0
조회수 132
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
제본을하려고 합니다! 총 매수가 어느정도 나오나요??
boll1235
2025-09-22T07:58:34.040Z
댓글 2
좋아요 0
조회수 131
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
윈도우 파워셀을 관리자 권한으로 실행하니까 다음 화면이 뜹니다 .
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
강동호
2025-09-22T07:41:50.552Z
댓글 2
좋아요 0
조회수 110
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
이 나오면서 결제가 안되는데요. 참 어렵습니다. ㅎㅎ
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
불을뿜는 냉기마법사
2025-09-22T06:58:25.819Z
댓글 2
좋아요 0
조회수 658
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
구글로 계속하기 안뜨고 아래 화면이 나옵니다.
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
불을뿜는 냉기마법사
2025-09-22T06:24:50.719Z
댓글 2
좋아요 0
조회수 66
미해결
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
가볍게 클로드에 대해, 클로드 사용법과 응용 방법을 접하기 좋은 책이라고 생각합니다. 다만, 오늘 메일을 받아보니 기존 책의 내용에서 수정사항이 많은 것 같습니다. 수정이 완료된다면, pdf 파일이나 eBook을 받아볼 수 있을까요?
업무-생산성 인공지능(ai) ai-활용-(ax) claude 바이브코딩
무영
2025-09-22T06:02:01.198Z
댓글 3
좋아요 0
조회수 148