목록django (26)
완숙의 블로그
[Django] Week 7-2 Social Login - 구글 로그인 Practice, Tuple 먼저, 기본적인 틀을 짜보자. 사전작업 새로운 프로젝트 만들자. $ django-admin startproject social_login 만들고 상위폴더이름 변경한다. (social_login_up 으로 해줬다.) 앱을 만들어준다. $ python manage.py startapp goologin 여기서, 앱이름을 잘 설정해야한다. 중복되는 이름으로 설정하면안되니까 나만 알아볼 수 있는 앱이름으로 하는게 좋다. 아니면 나처럼 처음부터 다시 만들어야 되는 불상사가(...ㅜㅠ) 생긴다. 앱을 만들었으니 settings.py에 알려주자. # settings.py INSTALLED_APPS = [ 'django...
이제 실용적으로 가볼예정! 어떤 기능을 추가하고 싶으냐에 따라서 내가 찾아서 해야돼,, 개념접근 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..
자! 그런데 이제 글을 쓰려면 항상 /admin 으로 들어가야되니까 너무 싫어. 그러니까 만들자! 어떻게 만들까? NAV바에 글쓰기 버튼을 만든다. 글쓰기 버튼을 누르면 입력창이 뜬다. 제출을 누르면 해당 입력한 내용의 detail 페이지가 뜬다. 시작! 구상부터 시작해보자. 글쓰기 버튼을 누를 때, 어떤 path로 보낼지 정해줘야 한다. 그 path 에 해당하는 views.py에 함수를 만들어준다. 그리고 이 함수가 반환하는 값에 html을 보여준다. 그러니 new.html 부터 만들자 그 다음, new.html 에서 데이터를 보내는 것은 form 태그의 submit 버튼을 눌러 보낼 수 있었다. 여기서 관건은, 그럼 submit 을 누름과 동시에 이번에는 database 에 정보를 입력 하는 것이 중..