목록프로그래밍 강의/Django (20)
컴굥일지
[WYSIWYG의 소개 및 적용] WYSIWYG : 게시글을 작성할 수 있도록 해주는 기능 ⇒ 글을 쓸 때 글씨를 굵게 하거나 언더라인을 쓸 수 있게 하는 등 풍부하게 글을 작성할 수 있도록 해줌 articleapp의 form.py로 가서 아래 코드 작성 content = forms.CharField(widget= forms.Textarea(attrs={'class': 'editable'})) articleapp 내의 template의 create.html에 아래 코드 추가(editor 페이지에서 가져온 코드) update.html에도 위 코드 추가 마지막으로 form.py에 아래 코드 추가 project = fomrs.ModelChoiceField(queryset=Proje..
[RedirectView을 통한 SubscribeApp 시작] python manage.py startapp subscribe app settings.py에 subscribeapp 추가 urls.py에 subscribeapp으로 가는 경로를 생성 앞서 진행한 앱 생성 방법과 동일 [Field Lookup을 사용한 구독 페이지 구현] Model.objects.filter(pk = xxx, user= xxx)에서 (pk = xxx, user= xxx)는 And function Or function 도 존재 WHERE statement 도 존재 앞으로 구현할 것 유저가 구독하고 있는 프로젝트를 확인하는 것 그 프로젝트 안에 있는 모든 게시물들을 가져오는 것 원래는 예를 들어 Articlesl.objects.f..
[ProjectApp 구현] Create / Detail / List View 를 구현한다. (Update / Delete는 구현하지 않는다. Success_url to related Project (프로젝트 만들면 이후 이어질 페이지 정하기) Login_required to CreateView (최소한 로그인은 해야 프로젝트를 할 수 있게 하자) Model : title / description / image / created_at =========================================================== python manage.py startapp projectapp settings.py에 projectapp 추가 urls.py #projectapp/urls from..
[모바일 디버깅, 반응형 레이아웃] 모바일 앱으로 접속하는 방법 python manage.py runserver는 python manage.py runserver 127.0.0.1:8000와 같다. 코드 돌아가는 컴퓨터에서만 실행할 수 있다. 다른 device로는 불가능 python manage.py runserver 0.0.0.0:8000으로 터미널에 치면, 다른 device에서도 접속 가능 #pragmatic/settings.py ALLOWED_HOSTS = ['*'] #모든 호스트에 대해 허용을 한다. => 나중에 배포시에는 주의할것 현재, 모바일에서는 디자인이 예쁘게 되어있지 않다. ⇒ 아래와 같이 수정한다. shrink-to-fit=no는 firefox에 맞춘 설정이다. initi..
[Mixin 소개 및 Commentapp 구현] CreateView는 object가 없고, DetailView는 form이 없다. DetailView를 사용하고 싶은데 form과 같이 사용하고 싶다면 Mixin을 사용한다. Comment create, delete만 구현한다. 댓글 추가/삭제 이후, 다시 그 게시글로 되돌아가도록 한다. Comment app 생성 터미널에 python manage.py startapp commentapp을 입력하여 앱 생성 settings.py파일에 가서 INSTALLED_APPS에 가서 ‘commentapp’ 추가 pragmatic/urls.py에 가서 아래 코드를 작성하여 프로필 페이지로 연결해주는 경로를 생성 path('comments/', includ..
[MagicGrid 소개 및 Articleapp 시작] magicgrid: https://github.com/e-oj/Magic-Grid Lorem Picsum: https://picsum.photos/ Article app 생성 터미널에 python manage.py startapp articleapp을 입력하여 앱 생성 settings.py파일에 가서 INSTALLED_APPS에 가서 ‘articleapp’ 추가 pragmatic/urls.py에 가서 아래 코드를 작성하여 프로필 페이지로 연결해주는 경로를 생성 path('articles/', include('articleapp.urls')), articleapp파일로 가서 urls.py 만들고, app_name 설정한다...
[Profileapp 시작 그리고 ModelForm] Profile Account 객체와 1:1로 매칭된다. delete, detail 기능은 만들지 않는다. Account 객체가 탈퇴하면 자동으로 사라지게 된다. Profile app 생성 터미널에 python manage.py startapp profileapp을 입력하여 앱 생성 settings.py파일에 가서 INSTALLED_APPS에 가서 ‘profileapp’ 추가 pragmatic/urls.py에 가서 아래 코드를 작성하여 프로필 페이지로 연결해주는 경로를 생성 path('profiles/', include('profileapp.urls')), profileapp파일로 가서 urls.py 만들고, app_name..
[Authentication 인증시스템 구축 with Decorator] Decorator를 쓰지 않고 인증시스템을 구축하면 중복되는 코드가 많아진다. Decorator는 함수의 내용을 고치지는 않지만, 앞뒤로 붙어서 꾸며준다.(중복 제거 가능) 그냥 함수에는 @login_required라고 쓰면 되지만, 메서드(class안의 함수)에는 적용할 수 없다. @method_decorator :일반 함수에 사용하는 decorator를 메서드에 사용할 수 있도록 변환해준다. @method_decorator(login_required, ‘get’) 이런 식으로 사용한다. 커스텀 decorators.py 만들기 #accountapp/decorators.py from django.contrib.auth.models ..
[DetailView를 이용한 개인 페이지 구현] #accountapp/views.py # CreateView는 뭔가 만들어야 하니까 form이나 성공했을때 경로 등 정해줘야 하지만, # DetailView(reading)는 훨씬 더 간단하다 class AccountDetailView(DetailView): model = User # 어떤 모델을 사용할 것인지 template_name = 'accountapp/detail.html' # 어떻게 시각화할 것인지 {% extends 'base.html' %} {% load bootstrap4 %} {% block content %} {{ user.date_joined }} {{ user.username }} {% endblock ..
[Login / Logout 구현] login / logout도 django에서 제공하는 template으로 할 수 있다. login / logout은 지정할 것들이 별로 없어, 바로 urls.py에서 할 수 있다 #accountapp/urls.py #로그인은 로그인을 하는 창이 필요하기 때문에 template_name을 설정해준다. path('login/', LoginView.as_view(template_name='accountapp/login.html'), name='login'), path('logout/', LogoutView.as_view(), name='logout'), {% extends 'base.html' %} {% block content %} Login {% csrf_token %}..