inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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%} 분명 똑같이 했는데 왜 검색이 안되고 무반응인지 잘 모르겠어요. 뭐가 문제일까요?

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

Ubuntu 상에서 Node.js 설치가 안되네요. [답을 찾아서 댓글에 추가함]

해결됨

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

집에서 안되서, 회사 컴퓨터에서 해도 동일하네요. 10) 복사한 내용을 마우스 우클릭으로 붙여넣기를 했는데, 아래와 같은 오류가 나옵니다. 왠지... ".nvm" 요넘 부터 뭔가 실행이 안된 듯 싶어요. 이정도면 다른 분들도 모두 비슷한 오류가 나올 듯 싶어요. 가장 쉬운 단계에서 넘어가질 못하니... 앞으로가 많이 걱정되네요. ㅎㅎㅎ

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
KeeWoong Hong 댓글 3 좋아요 0 조회수 244

ide 명령어 실행

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

> /ide cursor ⎿ Installed extension to Cursor Cursor가 안 열려요. 따로 설정해야하는게 있나요?

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
gmldnjs0402 댓글 2 좋아요 0 조회수 83

/statusline명령어입력시

미해결

[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 댓글 2 좋아요 0 조회수 148

클로드 구독 결제

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

커서로 진행하고 싶은데, 커서구독해서 클로드 사용해도 괜찮나요? 꼭 터미널에서 실행해서 진행해야하나 해서요

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
gmldnjs0402 댓글 2 좋아요 0 조회수 483

Node.js npm -v 출력확인

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

다시 처음부터 오류를 찾고 해결하려고 해도 Node.js에서도 계속 막히네요. 총 몇 시간째인지도 모르겠어요.!!!!

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
고은아 댓글 2 좋아요 0 조회수 75

템플릿 변수에 대한 오류

미해결

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 조회수 143

node: command not found 오류

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

node.js설치시 node: command not found 오류가 납니다.

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
이석호 댓글 2 좋아요 0 조회수 208

Node.js 설치 오류 관련: Command 'nvm' not found

미해결

[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
  • 바이브코딩
이석호 댓글 2 좋아요 0 조회수 240

CSRF_COOKIE_NAME에러

미해결

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

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

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

윈도우 사용자 윈도우 native로 설치해서 진행해도 괜찮을까요?

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

책을 보면 윈도우의 경우 wsl에 우분투올려서 진행하는데, 금일 기준으로는 클로드코드 네이티브 윈도우용도 있는 것으로 보이는데 그걸로 진행해도 뒷부분 진행에 문제가 없을까요?

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
kykim818 댓글 2 좋아요 0 조회수 169

결제 (프로모션)오류로 결제 못하신분 해당링크로 가셔서 해결하세요.

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

https://claude.ai/settings/billing 에러문제로 결제가 되질 않아서 클로드로드 측에 문의해서 받은 결제 링크입니다. 이걸로 결제하니 오류도 발생하지 않더라구요.

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
불을뿜는 냉기마법사 댓글 2 좋아요 1 조회수 965

결제실패

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

저 주소를 복사해 브라우저에 직접 붙여넣었더니 계속 결제 실패하는데 홈 클로드에 들어가서 결제해도 되나요? 계속 결제 실패하면 어떻게 하나요?ㅠ

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
고은아 댓글 3 좋아요 0 조회수 545

뭘 해야지 오늘 미션완료가 뜯는건가요?

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

설문진행, 도서등록, 37페이지까지 결제하고 완료 했습니다.

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
불을뿜는 냉기마법사 댓글 3 좋아요 0 조회수 132

제본

해결됨

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

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

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

26페이지 1번 부터 질문 하게 되네요 ㅠ.ㅠ

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

윈도우 파워셀을 관리자 권한으로 실행하니까 다음 화면이 뜹니다 .

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
강동호 댓글 2 좋아요 0 조회수 110

클로드 코드 결제시 우측상단 경고창

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

이 나오면서 결제가 안되는데요. 참 어렵습니다. ㅎㅎ

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
불을뿜는 냉기마법사 댓글 2 좋아요 0 조회수 658

33페이지 3번 1.claude account.. 눌렀는데

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

구글로 계속하기 안뜨고 아래 화면이 나옵니다.

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
불을뿜는 냉기마법사 댓글 2 좋아요 0 조회수 66

eBook 출판 계획이 있으신가요?

미해결

[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!

가볍게 클로드에 대해, 클로드 사용법과 응용 방법을 접하기 좋은 책이라고 생각합니다. 다만, 오늘 메일을 받아보니 기존 책의 내용에서 수정사항이 많은 것 같습니다. 수정이 완료된다면, pdf 파일이나 eBook을 받아볼 수 있을까요?

  • 업무-생산성
  • 인공지능(ai)
  • ai-활용-(ax)
  • claude
  • 바이브코딩
무영 댓글 3 좋아요 0 조회수 148

인기 태그

인프런 TOP Writers

주간 인기글