목록likelion (25)
완숙의 블로그
이제 실용적으로 가볼예정! 어떤 기능을 추가하고 싶으냐에 따라서 내가 찾아서 해야돼,, 개념접근 allauth package 이 패키지로 해보자! 근데 저번의 로그인 구현한 것과 무엇이 다를까? 기존의 방식은 db.sqlite3 로 구현했다. 새로운 유저가 만들면 이 DB에 저장되었던 것. 그런데 사실 데이터를 관리할 때, 마구자비로 넣는 방식은 비상식적, DB와 DB를 다루는 로직이 한공간에 있었다. 그런데 이번에는 DB와 DB를 다루는 로직이 다른서버(구글) 같은 곳에 있는 거야. 기존에 우리가 로그인 함수를 짰을 때를 생각해보면, 요청 이 들어왔을 때, 무언가를 해줬었다. 이번에는 구글 서버에 사용자가 있는지 물어보고, 있을경우 갖다주는 방식! 자 그럼 실습으로 가보장
이제 만든 프로젝트를 실제 웹에 올려보자. 실제 웹에 올리기 위해서는 AWS, Jeroku, python anywhere 등 다양한 웹 호스팅 서비스를 이용해야 한다. 우리는 그중에서 Heroku 를 활용해서 배포하는 법을 알아보자. 무료니까.(찡긋) 웹사이트에 올릴 준비하기 지금 우리가 만든 django 프로젝트는 개발환경에 최적화 되어있기 때문에, 실제 서비스 운영은 좋지 않다. 보안이나 성능상에 문제가 생길 가능성이 있기 때문인데, 가장 중요한 두가지 부터 수정해보자. settings.py 수정하기 DEBUG이 기능이 켜져있는 상태에서 배포하면, # settings.py # SECURITY WARNING: don't run with debug turned on in production! DEBUG ..
실습 먼저, 우리는 Blog 객체를 만드는데 있어서 글쓰기 를 눌러 만들 수 있었다. 이 과정을 사실 앞에서 배운 내용처럼, form 클래스를 html에 만들어놓고, 값을 넘겨 만들 수 있다. 하지만 이번에는 그 form 이라는 것을 form.py 라는 것에 분리해서 만들고 이걸 import 해서 views.py 에 함수를 만드는데에 있어 조금더 간결하고 수월한 방향으로 만드는 방법을 배울 것이다. 먼저, blog 라는 앱안에 form.py 를 만들어주자. 우리는 이 form 으로 부터 blog에 관해 입력을 넘길 것이기에 이 앱안에 만들어준다. 그럼 우리는 뭘 import 해줘야 하냐면, # form.py from django import forms from .models import Blog 모델에 ..
Form.py 를 만들어 볼거다! 근데 왜? HTML로 만들었었는데?? 손으로 만드는데는 한계가 있어,, 맨날맨날 만들어줘야돼 서버로 보내는데 유효성 검사도 귀찮아 하나하나 바꾸는 것도 힘들어 그래서! 아예 만들어두고 하나씩 갖다쓰자 이거야! Form = MODEL Form 안에는 두가지 입력공간을 만들 수 있는데, 모델을 기반으로 한 입력공간 우리는 장고에서 default 로 사용하는 model 틀을 가져다가 쓸 것이기 때문에 import 해줘야 한다. from django import forms.ModelForm 임의의 입력공간 이녀석도 이미 만들어진 거 사용할거야! from django import forms.Form 모델 기반 입력공간 만들기 form.py # form.py from django ..
페이커??? 가짜 데이터! 가짜 데이터, 왜 필요할까? 데이터가 많은 상황을 염두해 둔 기능을 구현할 때 이것을 구현해보고 싶어서! 기본적으로 제공하는 기능이다! 실습 가상환경을 킨다. $ source myvenv/bin/activate faker를 설치한다. $ pip install faker 최상위 폴더에 fake.py 를 만들자. 여기서 주의해야하는점. 패키지 이름과 동일하게 파이썬 파일을 만들면 에러가 뜬다. faker import 하자. # fake.py from faker import Faker 이 페이커 객체의 메소드로 부터 어떤 종류의 가짜 데이터를 뽑아낼지 결정이 가능하다. # fake.py from faker import Faker myfake = Faker() myfake.name()..
views.py 와 home.html 두 개만 건들여보자. 우리는 blog 앱에 대해 수정할 거다. pagination을 사용하기 위해서 views.py 에 import 하자. # views.py from django.core.paginator import Paginator views.py 의 home 함수를 고칠 거니, # views.py def home(request): blogs = Blog.objects return render(request, 'home.html', {'blogs':blogs}) 하나씩 작성해보면, # views.py def home(request): blogs = Blog.objects # 블로그 모든 글을 대상으로 blog_list = Blog.o..
지금까지 만든 블로그의 문제는! 글이 계속 아래로만 생성된다는 것이다. 이런식으로. 저 밑에까지 언제 읽고 앉아있냐 ㅠㅜ.. 그러니까 적당히 끊어줄 필요가 있다! Pagination 나중에 게시판 만들어보면 이게 필수적이다! ㅠㅜ 자, 열심히 해보자. 문제상황을 명확히 하는 것이 문제를 푸는데 있어 항상 우선적인 역할을 한다. 먼저, 이 Pagination을 하고 싶다면, 무엇이 필요할지 생각해보자. 화면이 보여져야 한다. Templates 세 개의 블로그 객체를 한 페이지로 출력해줘! 데이터 처리를 담당하는 Views 자, 이 pagination 역시, 장고에서 기본적으로 지원하는 기능이다. 그러면 이것을 사용하기 위해서는 앞에서부터 배워왔듯이, import 작업을 해줘야 한다. views.py imp..
사전 준비 account 라는 앱을 만들어주자. $ python manage.py startapp account settings.py 에 알려주자. # settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog.apps.BlogConfig', 'portfolio.apps.PortfolioConfig'..