Web/Django
html2canvas를 이용해서 특정영역을 캡쳐했다면 이것을 서버에 이미지 파일로 저장을 하고 이를 활용해야 할 수 있습니다. 필자는 이렇게 하기위해 html상에서 ajax를 사용해서 html2canvas로 만들어진 스샷을 base64포맷으로 django의 views에 있는 함수로 요청을 보냈고 django에서는 python의 base64라는 모듈을 사용해 이미지 바이너리 코드로 디코딩해서 파일에 쓰고 저장을 하였습니다. > base64란? 64개의 char(A-Z,a-z,0-9,/,+,=(padding))를 사용해서 binary data를 text로 변환을 하는 것이다. 즉, 64진법으로 바이너리데이터를 문자열로 바꾸는 것이다. 하지만 이미지나 오디오를 base64로 encoding을 하면 데이터의 양..
[pip3 install error] 'module' object is not callable 오늘 갑자기 pip3 install 을 사용해 패키지를 설치하려는데 에러가 계속 발생했었다. 발생한 에러 Traceback (most recent call last): File "/Applications/Xcode.app/Contents/Developer/usr/bin/pip3", line 10, in sys.exit(main()) TypeError: 'module' object is not callable 이와 같은 에러를 가상환경이 켜지지 않았을때? 보았던거 같기도해서 가상환경에 문제가 있나 확인해 보았지만 그건 아니었다. 그래서 검색을 한 결과 아래와 같은 해결책을 찾았다. S..
[Django] 비로그인 시 접근을 막는 법 '마이페이지'와 같은 페이지를 만든다고 생각해보면 로그인이 되었을때만 로그인 되어있는 유저에 대한 정보를 보여주어야 한다. 그러나 html이나 views에서 따로 어떠한 방법으로든 로그인 여부를 확인해주지 않는다면 로그인을 하지 않아도 '마이페이지'에 접근이 가능할 것이다. is_authenticated Is_authenticated는 django User model에 정의되어있는 attribute로 AnonymousUser가 들어올때에 False를 반환해줍니다. 이 속성을 사용하면 views, 또는 html의 template언어를 사용하여 현재 request를 통해 전달되어진 user정보가 로그인이 되어있는 유저인지 anonymo..
[Django] 템플릿 언어 Documentation 템플릿 언어란, html상에서 context를 통해 넘겨받은 데이터들을 다루기 쉽게 해주는 하나의 언어라고 할 수 있으며, 형식은 python과 비슷 하지만 python도 아닌 html도 아닌 그러한 언어입니다. 가장 많이 사용하게 되는 for, if {% for i in is %} (...) {% endfor %} {% if x == '1' %} (...) {% endif %} 위와 같이 javascript를 사용하지 않고도 for문을 사용할 수 있게된다. 주의할 점은 python은 아니므로 python에서 지원하는 함수들은 사용할 수 없다. ( 필자는 이것을 깜빡하고 실수할때가 꽤 있었습니다.^^;; ) 시간표기법을 활용하기 docu..
[jQurey] Django views함수 ajax통신으로 호출 Django에서 웹 개발을 하다보면 한 html화면에서 다른 app이나 다른 views의 함수를 비동기적으로 처리해야 할때가 있다. 지금 해보고자 하는 것이 바로 ajax를 활용하여 요청을 보내고 json형식으로 반환을 받아보는 것이다. 동작순서 html에서 입력을 준다. jquery가 입력값을 서버로 보낼 작업을 준비 ajax를 통하여 서버로 요청 views의 함수 실행 후 json형식으로 반환 json형식으로 응답을 받아 html에서 보여준다. html 코드 views.py 코드 from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt..
DataBase 활용 DB = 정보저장공간(장고와는 별개 -> db는 여러개가 있을 수 있다.) models.py : 공장 class : 틀 객체 : 생성된 데이터 models.py에 class로 저장할 데이터형식을 정의 class Blog(models.Model): title = models.CharField(max_length=200) #짧은 문자열 pub_date = models.DateTimeField('date published') #날짜와 시간 body = models.TextField() #긴 문자열 $ python manage.py makemigrations - migration파일 만드는 명령어 $ python manage.py migrate - 실제로 db에 적용하는 명령..
템플릿 언어 템플릿 변수 {{value}} 템플릿 필터 {{value | filter}} ex){{value | length}} 템플릿 태그 {% tag %}...태그내용...{% endtag %} {%url 'url_name'%} url을 표시해준다. {% for ------ %} #반복할 내용 {% endfor %} views.py에서 template로 변수 넘기기 return render(request, 'result.html', {'full': text, 'total': len(words)}) render를 해줄때 맨 마지막 인자로 'key-value'형식으로 넘겨준다. 여기서 key값이 template에서 사용된다.
Hello world 띄워보기 가상환경을 실행 $ source myvenv/Script/activate django 프로젝트를 생성하기 $ django-admin startproject 위의 명령어를 실행해주면 아래와 같은 프로젝트 폴더가 생긴다. / //폴더에 같은 이름의 폴더가 생기므로 상위 폴더의 이름을 바꿔주는 것이 좋다. manage.py / __init__.py settings.py urls.py wsgi.py django 서버 작동시키기 $cd 프로젝트가 만들어진 폴더로 이동해준다. $ python manage.py runserver 서버가 성공적으로 작동하면 http://127.0.0.1:8000/의 주소로 서버가 작동하기 시작한다. 서버를 끄려면 ctrl + c를 누르면 된다. app만들..
django 기본환경 셋팅하기 pip패키지 : Python으로 작성된 패키지 소프트웨어를 설치 및 관리하는 패키지 관리 시스템 Django == pip패키지 가상환경 가상환경이란 프로젝트를 담을 독립된 공간이라 할 수 있다. 가상환경 생성 python -m venv 가상환경 실행 source /Scripts/activate 나 같은경우에는 source /bin/activate로 실행이 됨. 가상환경 종료 deactivate django 설치하기 pip install django (가상환경이 실행된 상태에서) pip install django== (특정버전을 설치하는 방법) pip uninstall django (지우기 명령어)