소개
게시글
질문&답변
summernote 설치 후 그림파일 드레그&드롭 그림 올라가지 않음
안녕하십니까~ 말씀하신대로 수행한 결과 콘솔상에 시현된 것 POST 처리 idx 현재 첨부파일 테스트.txt 새 첨부파일 존재 새 첨부파일명: ========================================================== 문제가 첨부파일 관련된 문제가 이것 때문은 아닌지요? 그리고, 이 부분도 확인을 좀 해주셔야 될 것으로 보입니다. http://127.0.0.1:5700/member/join 연결 시 다음과 같은 에러~ Bad Request The CSRF token is missing. member.py 에서 # @csrf.exempt 이와 같이 적용하고 회원가입했을 때는 정상적으로 회원가입이 되었는데 - 참고하시구요... @csrf.exempt 적용 후에는 회원가입을 하면 Bad Request The CSRF token is missing. 같이 에러 발생합니다. * csrf 관련 코딩 1. __init__.py : from flask_wtf.csrf import CSRFProtect 2. __init__.py : csrf = CSRFProtect(app) 3. __init__.py : from .common import login_required, allowed_file, rand_generator, check_filename, hash_password, check_password 4. member.py(join 함수 관련된 부분) : post = { "name": name, "email": email, "pass": hash_password(pass1), "joindate": current_utc_time, "logintime": "", "logincount": 0, } 5. common.py : from werkzeug.security import generate_password_hash, check_password_hash 6. member.py(login 관련된 부분) : if check_password(data.get("pass"), password): 7. join.html(form 부분) : 8. edit.html(form 부분) : * 참고사항-1 member.py 에서 # @csrf.exempt 적용하고 회원가입했을 때 mongo db 상에서 csrf_token 적용된 비번 정상으로 기록되었음 ** 참고사항-2 코딩 전체에서 csrf_token 적용되어 있음을 알려드립니다. 감사드립니다.
- 1
- 11
- 927
질문&답변
summernote 설치 후 그림파일 드레그&드롭 그림 올라가지 않음
edit.html 코드 {% extends "main.html" %} {% block contents %} script> $(document).ready(function () { $("#summernote").summernote({ height: 300, minHeight: null, maxHeight: null, lang: "ko-KR", popover: { image: [], link: [], air: [] }, callbacks: { onImageUpload: function (image) { for (var i = 0; i image.length; i++) { uploadImage(image[i]); } } } }); }); function uploadImage(image) { var data = new FormData(); data.append("image", image); var csrf_token = "{{ csrf_token() }}"; $.ajaxSetup({ beforeSend: function (x, s) { if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(s.type)) { x.setRequestHeader("x-CSRFToken", csrf_token) } } }); $.ajax({ url: "{{url_for('board.upload_image')}}", cache: false, contentType: false, processData: false, data: data, type: "post", success: function (url) { var image = $("(사진)").attr("src", url).css('max-width', "900px"); $("#summernote").summernote("insertNode", image[0]); }, error: function (data) { console.log(data); alert(data); } }); } script> form name="form" method="POST" action="{{ url_for('board.board_edit', idx=data._id) }}" enctype="multipart/form-data"> input type="hidden" name="csrf_token" value="{{ csrf_token() }}"> div class="form-group"> label for="name">작성자label> input class="form-control" type="text" name="name" value="{{ session['name'] }}" readonly> div> div class="form-group"> label for="title">제목label> input class="form-control" type="text" name="title" value="{{ data.title }}"> div> {% if data.attachfile %} div class="form-check text-right"> input type="checkbox" class="form-check-input" id="deleteoldfile" name="deleteoldfile"> label class="form-check-label" for="deleteoldfile">첨부파일 삭제 ({{ data.attachfile }})label> div> {% endif %} div class="form-froup"> label for="contents">내용label> textarea class="form-control" rows="8" name="contents" id="summernote">{{ data.contents }}textarea> div> div class="custom-file"> input class="custom-file-input" id="customFile" type="file" name="attachfile"> label class="custom-file-label" for="customFile">파일선택label> div> div class="text-center">input class="btn btn-primary" type="submit" value="수정하기">div> form> {% endblock %} ** 크롬, 엣지, brave, 익스플로러에서도 동일한 현상입니다. 감사합니다.
- 1
- 11
- 927
질문&답변
summernote 설치 후 그림파일 드레그&드롭 그림 올라가지 않음
print문을 돌려서 확인 결과로서 콘솔상에 나타난 것을 보면 아래와 같습니다. -결과의 내용을 분석하면, 기존의 첨부된 파일이 있는 상태에서 추가 첨부파일 등록없이 작성하기를 클릭했는데... 새로운 첨부파일이 있는 것으로 코딩은 돌아가는 것으로 보입니다. POST 처리 idx 현재 첨부파일 테스트.txt 새 첨부파일 존재 127.0.0.1 - - [12/Apr/2020 17:42:31] "?[32mPOST /board/edit/5e92d378520729c0f6769948 HTTP/1.1?[0m" 302 - 127.0.0.1 - - [12/Apr/2020 17:42:31] "?[37mGET /board/view/5e92d378520729c0f6769948 HTTP/1.1?[0m" 200 - 127.0.0.1 - - [12/Apr/2020 17:42:33] "?[37mGET /board/comment_list/5e92d378520729c0f6769948?_=1586680951452 HTTP/1.1?[0m" 200 - * mongo db 상에서는 attachfile - null * 서버(c:\python uploads)에는 '테스트.txt'(첫번째 글작성 시 올린 파일) 파일 존재 ** '글 수정' 모드로 와서 아무것도 변경없이 단지 '작성하기' 버튼을 클릭했는데 서버상에는 파일(테스트.txt)이 존재하고 -- 기존의 첨부파일이 mongo db상에서 null로 나오고 이리하여 view 화면에서 첨부파일을 보여주지 못하고 있습니다. 감사합니다.
- 1
- 11
- 927
질문&답변
summernote 설치 후 그림파일 드레그&드롭 그림 올라가지 않음
안녕하십니까~~ 확인한 결과를 말씀드립니다. ㅇ POST 부분 코딩 수정한(즉, else: 이하) - else를 제외한 edit.py 코딩을 지우고 return 값을 위해 아래와 같이 코딩 후 실행하면 첨부파일은 지워지지 않습니다. 물론, 다른 첨부파일 추가 등은 안되는 것은 당연하고요... else: return redirect(url_for("board.board_view", idx=idx)) ㅇ POST 부분 중에서 아래의 이 부분만을 지우고(주석처리하고) - 첨부파일이 있는 상태에서 수정모드로 가서 작성하기를 하면 역시 첨부파일은 지워집니다. if session.get("id") == data.get("writer_id"): filename = None if "attachfile" in request.files: file = request.files["attachfile"] if file and allowed_file(file.filename): filename = check_filename(file.filename) file.save(os.path.join(app.config["BOARD_ATTACH_FILE_PATH"], filename)) if data.get("attachfile"): board_delete_attach_file(data.get("attachfile")) else: if deleteoldfile == "on": filename = None if data.get("attachfile"): board_delete_attach_file(data.get("attachfile")) else: filename = data.get("attachfile") * board_delete_attach_file(data.get("attachfile")) - 이 함수가 없는데도 첨부파일이 지워지는 현상 ** 이 경우에 db확인하면 attachfile에 null로 나옴 글 작성하였을 경우에는 db에서 정상적으로 파일이 보였다가 수정 후에는 null로 나타납니다. 감사합니다.
- 1
- 11
- 927
질문&답변
summernote 설치 후 그림파일 드레그&드롭 그림 올라가지 않음
안녕하십니까. 빠른 답변에 매우 감사함을 표시하면서~~~ 강사님께서 말씀하신대로 해도 해결은 안되어서 저의 코딩 내용을 붙입니다. 부탁드립니다. @blueprint.route("/edit/", methods=["GET", "POST"]) def board_edit(idx): if request.method == "GET": board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if data is None: flash("해당 게시물이 존재하지 않습니다.") return redirect(url_for("board.lists")) else: if session.get("id") == data.get("writer_id"): return render_template("edit.html", data=data, title="글 수정") else: flash("글 수정 권한이 없습니다.") return redirect(url_for("board.lists")) else: title = request.form.get("title") contents = request.form.get("contents") deleteoldfile = request.form.get("deleteoldfile", "") board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if session.get("id") == data.get("writer_id"): filename = None if "attachfile" in request.files: file = request.files["attachfile"] if file and allowed_file(file.filename): filename = check_filename(file.filename) file.save(os.path.join(app.config["BOARD_ATTACH_FILE_PATH"], filename)) if data.attachfile: # if data.get("attachfile"): board_delete_attach_file(data.get("attachfile")) else: if deleteoldfile == "on": filename = None if data.get("attachfile"): board_delete_attach_file(data.get("attachfile")) else: filename = data.get("attachfile") board.update_one({"_id": ObjectId(idx)}, { "$set": { "title": title, "contents": contents, "attachfile": filename } }) flash("수정되었습니다.") return redirect(url_for("board.board_view", idx=idx)) else: flash("글 수정 권한이 없습니다.") return redirect(url_for("board.lists")) 그리고, 섬머노트 관련된 부분은 해결되었습니다. ~~~역시나 저의 오타가 있었네요...ㅠㅠ 감사합니다.
- 1
- 11
- 927
질문&답변
pip install pymongo 오류 문의
저의 경우에도 동일한 impot pymongo에서 에러가 발생하였는데.... 아나콘다를 윈도우에서 제거하고 정상으로 작동하고 있습니다. 참고하시기 바랍니다.
- 1
- 6
- 4.4K
질문&답변
이 사이트는 보안 연결(HTTPS)이 사용되지 않았습니다. 메세지
항상 빠른 답변에 감사드립니다. 참고사항 >>> 윈도우10 크롬브라우저에서 http://~~~(혹은 http://www.~~~) 접속을 시도해도https://~~~(혹은 https://www.~~~) 로 돌아가서 접속이 안되는데...https://~~~(혹은 https://www.~~~) 로 돌아가지 않게 하는 방법이 있는지요??? *** '주의요함'으로 나오지만 http://~ 로 당분간 사용하다가 무료로 SSL을 지원하는 사이트(cloudflare) 를 이용하여 적용해보려고 합니다.** 윈도우7 크롬부라우저에서는 http://~~~(혹은 http://www.~~~) : 접속 가능*** 윈도우10 엣지나 익스플로어에서도 http://~~~(혹은 http://www.~~~) : 접속 가능 @@ Google Email Login 관련 @@ Google API 페이지상에서 URI 추가 삽입해주어야 할 부분(승인된 자바스크립트 출저, 승인된 리디렉션) - [추가] 혹은 [Add] 클릭하고 http://도메인, http://www.도메인 -> 두 개를 입력해야 됩니다.(강의시간에 'http://도메인' 한 개만 적용했지요) - 그리고, - 만약에 https 인정받은 도메인을 사용하시는 분은 https://도메인, https://www.도메인 -> 이 두개도 추가로 입력해두어야 하는군요. - '승인된 자바스크립트 출처', '승인된 리디렉션'에 각각 총 4개가 존재해야 구글로그인 할 때 에러가 발생하지 않습니다. ***** 위 문제 중에서 ***** - 윈도우10 크롬브라우저에서 http://도메인(혹은 http://www.도메인)으로 url 창에 입력 후 접속할 때 자동으로 https://도메인(혹은 https://www.도메인) 으로 넘어가서 사이트에 접근할 수 없는 상태로 하는 경우에 해결 방법입니다. >>>>>해결방법 1. 크롬 url 창에 chrome://net-internals 입력 후 엔터 2. 나타난 화면상에서 왼쪽에 있는 탭 중에서 Domain Security Policy 클릭 3. 화면의 맨 아랫쪽에 보면 Delete domain security policies 의 바로 아래에 위치하고 있는 도메인 창에 원하는 본인의 도메인(예, example.com)을 입력 후 'delete'를 클릭 4. 현재의 사이트를 나온 다음 본인의 원하는 사이트에서 http://도메인(혹은 http://www.도메인)으로 시도하면 https://도메인(혹은 https://www.도메인) 으로 넘어가지 않고 http://도메인(혹은 http://www.도메인) 상태에서 정상적으로 원하는 사이트로 접근할 수 있다. 5. 해당 사이트의 url 창 왼쪽에 '!' 와 '주의요함'이 있는 것은 무시하고 사용하면 된다. *** 이 경고 표시는 https://로 변경하기 전까지는 http:// 하에서는 계속 나오게 됨을 참고하시기 바랍니다.
- 0
- 2
- 35K
질문&답변
sudo ./venv/bin/pyhon manage.py runserver 0:80 에러
말씀대로 settings.py 수정하여 해결되었습니다. ==================== 감사합니다.
- 1
- 2
- 216
질문&답변
'About me' page 그림이 나타나지 않음
로컬경로 확인 결과~ 제가 잘못했네요...죄송합니다. basecamp 바로 아래 하위폴더에 static 폴더를 두어야 되는데...더 아래 templtes/basecamp/static/images 이렇게 해서 잘못된 것으로 확인했습니다. 감사합니다. 마스크 잘 쓰시고요~ 요즘~건강에 조심하십시요...
- 0
- 4
- 186
질문&답변
'About me' page 그림이 나타나지 않음
블로그 앱(post_list 페이지와 post_detail 페이지)에서는 올리는 사진은 잘 보였습니다. 크롬 설정 이야기는 헤당사항이 없는 이야기인 것으로 보시면 됩니다. F12 소스보기에서 나타나는 에러는 다음과 같습니다. HTTP404: NOT FOUND - The server has not found anything matching the requested URI (Uniform Resource Identifier). GET - http://127.0.0.1:8000/static/basecamp/images/ms.jpg
- 0
- 4
- 186