Django
-
[Django] url 태그 인자 2개 보내기프로그래밍/Django & Flask 2020. 11. 24. 12:14
댓글을 삭제하는 기능을 만들 때 1) 해당 포스트의 id (해당 포스트로 다시 redirect 해야하므로) 2) 댓글의 id 가 필요했다. 이렇게 두 가지 인자를 처리하기 위해선 다음과 같이 진행해야 한다. 먼저 템플릿은 다음과 같이 구성한다. 삭제 인자를 두 개를 보냈으므로, url에서도 인자 두 개를 모두 사용해야 한다. (인자를 받는 순서가 중요하므로 이름은 자유롭게 설정해도 된다) path('reply_delete//', views.comment_delete, name="comment_delete"), 뷰는 다음과 같이 구성된다 def comment_delete(request, p_id, r_id): reply = Reply.objects.get(id=r_id) reply.delete() retu..
-
[Django] 글쓰기 기능 HTML Form으로 만들기 vs Django Form으로 만들기프로그래밍/Django & Flask 2020. 11. 22. 21:38
장고에서 글쓰기 기능을 만들 수 있는 방법은 2가지가 있다 (내가 아는것만 ㅎ) 1. HTML Form으로 만들기 2. Django가 제공해주는 Form으로 만들기 오늘은 이 두가지 기능을 비교해보려고 한다! HTML form으로 만들기 views.py def create(request): if request.method == 'GET': return render(request, 'post/create.html') elif request.method == 'POST': user_id = request.session.get('user_id') res_data = {} if not (request.FILES.get('posting_photo') and request.POST['posting_content']..
-
[Django] virtualenv Project 시 FileNotFoundError 해결프로그래밍/Django & Flask 2020. 10. 30. 13:59
CMD 창에서 virtualenv Proj를 입력했더니 [Errno 2] No such file or directory: 'C:\\Program Files\\Python37\\lib\\venv\\scripts\\nt\\python_d.exe 다음과 같은 에러가 발생했다. 1) C:\Users\ㅇㅇㅇ\anaconda3 카테고리로 이동 2) 다음과 같은 4개의 파일 복사 3) C:\Users\ㅇㅇㅇ\anaconda3\Lib\venv\scripts\nt 에러가 난 카테고리로 이동해 위의 4개 파일 복사 그 결과 무사히 해결되었다!
-
🤖 Django - 클래스형 뷰프로그래밍/Django & Flask 2020. 10. 24. 22:41
클래스형 뷰 뷰는 요청을 받아서 응답을 반환해주는 호출 가능한 객체다. 장고에서는 뷰를 함수로도 작성할 수 있고 클래스로도 작성할 수 있다. 함수형 뷰보다 클래스형 뷰가 장점이 많다. 클래스형 뷰를 사용하면 상속과 미스인 기능을 사용해서 코드를 재사용할 수 있고, 뷰를 체계적으로 구성할 수도 있다. 1) 클래스형 뷰의 시작점 클래스형 뷰를 사용하기 위해서는 URLconf에서 클래스형 뷰를 사용한다고 선언해야 한다. #urls.py from django.conf.urls import patterns from myapp.views import MyView urlpatterns = patterns('', (r'^about/', MyView.as_view()), ) 장고의 URL 해석기는 요청과 관련된 파라미터..
-
🤖 Django - Logging프로그래밍/Django & Flask 2020. 10. 24. 21:24
장고의 로깅 1) 로거 로거는 로깅 시스템의 시작점으로, 로그 메세지를 처리하기 위해 메시지를 담아두는 저장소다. 로거는 로그 레벨을 갖게 되는데, 이는 로그 메시지의 중요도에 따라 자신이 어느 레벨 이상의 메시지를 처리할지에 대한 기준이 된다. * 파이썬 로그 레벨 DEBUG 디버그 용도로 사용되는 정보로, 로그 레벨의 최하위 수준 INFO 일반적이고 보편적인 정보 WARNING 문제점 중에서 덜 중요한 문제점이 발생 시 이에 대한 정보 ERROR 문제점 중에서 주요 문제점이 발생 시 이에 대한 정보 CRITICAL 치명적인 문제점이 발생 시 이에 대한 정보로, 로그 레벨의 최상위 수준 로거에 저장되는 메시지를 로그 레코드라고 하며, 로그 레코드 여시 로그 레벨을 가진다. 로그 레코드는 스택 트레이스 ..
-
🤖 Django 웹 프레임워크프로그래밍/Django & Flask 2020. 10. 24. 13:59
Django 웹 프레임워크 📌 일반적인 특징 MVC 패턴 기반 MTV - 장고에서는 View를 Template, Controller를 View라고 부른다. 객체 관계 매핑(Object-Relational Mapping) - 데이터베이스 시스템과 데이터 모델을 연결시키는 다리와 같은 역할 자동으로 구성되는 관리자 화면 - 장고는 웹 서버의 콘텐츠, 즉 데이터베이스에 대한 관리 기능을 위하여 프로젝트를 시작하는 시점에 기본 기능으로 관리자 화면을 제공 우아한 URL 설계 - 파이썬 프레임워크의 일반적인 우아한 URL 방식을 채택 자체 템플릿 시스템 - 내부적으로 확장이 가능하고 디자인이 쉬운 강력한 템플릿 시스템을 가지고 있다. - 화면 디자인과 로직에 대한 코딩을 분리하여 독립적으로 개발 진행이 가능하다...
-
[Django] Django 3에서 namespace의 사용프로그래밍/Django & Flask 2020. 10. 23. 18:43
Django 3에서는 namespace 기능을 지원해주지 않는다고 한다. namespace 대신에 app_name을 사용해야 한다! Project name: Mysite Application name: polls # mysite/urls.py from django.contrib import admin from django.urls import path, re_path, include from polls import views urlpatterns = [ re_path(r'^polls/', include('polls.urls')), re_path(r'^admin/', admin.site.urls), ] # polls/urls.py from django.contrib import admin from djan..