목록web (24)
완숙의 블로그
이제 만든 프로젝트를 실제 웹에 올려보자. 실제 웹에 올리기 위해서는 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'..
이 기능들을 장고에서 이미 제공하고 있다! 그래서 이 녀석이 무엇인지! 어떤 것을 import해와야 되는지 공부해보자! 추가로! http 상에서 정보를 주고 받는 방식 (Method) 도 공부해보자. 이론 Accounts 라는 app을 만든다. views.py에 회원가입, 로그인, 로그아웃 함수를 만든다. urls, templates 만들기 이 중에서 views.py를 만드는게 핵심! http Method Web 상에서 정보를 주고 받는 방식 왜 Method를 나눌까? 우리 기존에 form 태그로 정보를 보내서 받을 때, views.py 에서 request.GET 이런 식으로 받아왔었다. 즉, default = GET 우리는 정보를 URL로 보낸다고 했는데, 그런데, GET 방식으로 정보를 보내면, 이 ..