분류 전체보기 346

python django heroku + aws s3 이용하기 (마무리)

저번 강의부터 이어서 시작하겠습니다. 1. Django 설정 1-1. django_storages 설치하기 장고의 파일 시스템을 이용하기 위하여 storages를 설치하여 줍시다. pip install django_storages 해당 명령어로 storages를 설치하였다면 settings.py에서 installed_apps에 storages를 설치하였다고 알려줍시다. 그다음은 s3버킷을 편하게 제어하기 위하여 boot3을 설치하여야 합니다. pip install boto3 boot3는 안 알려 줘도 됩니다. 1-2. settingsp.py 설정 settings.py에 들어와서 S3버킷과 연결하기 위해 설정을 해줍시다. DEFAULT_FILE_STORAGE = 'postproject.storages.Me..

python django heroku + aws s3 이용하기 (버킷 생성 및 key 발급)

저번 시간에는 heroku에 만든 프로젝트를 배포하여 보았습니다. 하지만 시간이 지나니 문제가 나타났습니다. 바로 heroku가 media(동적) 파일 저장을 지원 안 하기 때문에 이러한 현상이 일어나고 있습니다. 그래서 이 문제를 해결하기 위하여 aws사의 s3 버킷을 이용해 서버에 올라오는 동적, 정적 파일들을 s3 버킷에 따로 저장을 하기로 하였습니다. https://aws.amazon.com/ko/ 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services 예측 분석 Formula One Group에서 Amazon SageMaker를 사용하여 레이스를 최적화 Formula 1에서 어떻게 Amazon SageMaker와 다른 AWS 서비스를 사용하여 레이스 의사 결정을 최적화하..

python django heroku 배포하기

1. Settings.py 수정하기 보안과 외부 접속 설정을 위하여 SECRET_KEY와 DEBUG, ALLOWED_HOSTS를 수정해야 합니다. SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', '기존의 시크릿키') DEBUG = bool( os.environ.get('DJANGO_DEBUG', True) ) ALLOWED_HOSTS = ['*'] 2. .gitignore파일 만들기 github에 올리기 전에 올리면 안 되는 내용을 필터링해줍니다.. gitignore파일을 manage.py파일과 같은 위치에 만들어주어야 합니다. ### Django ### *.log *.pot *.pyc __pycache__/ local_settings.py db.sqlite3 me..

KKU likelion django project (8)

이번 강의에서는 검색 기능을 만들어 보겠습니다. 검색어를 받기 위하여 home.html에 search form을 만들어 줍시다. 이제 검색어를 받고 필터링한 글목록을 보여줄 search.html을 만들어주어 home.html의 내용을 모두 복사하여 넣어줍니다. postapp/templates/search.html의 내용은 home.html과 동일합니다. 이제 필터링을 해줄 함수와 url을 설정합니다. views.py로 돌아와 def search(request): posts = Post.objects.all() q = request.GET.get('q', '') if q: posts = posts.filter(title__icontains=q) return render(request, 'search.htm..

KKU likelion django project (7)

게시글 삭제가 완료되었다면 댓글 삭제기능을 만들어 보겠습니다. @login_required def comment_delete(request, post_pk, pk): post = get_object_or_404(Post, pk=post_pk) comment = get_object_or_404(Comment, pk=pk) user = request.user.get_username() context = {'post': post,} content = request.POST.get('content') if user == comment.comment_writer: comment.delete() return redirect('detail', post_pk) else: messages.info(request, '아이..

KKU likelion django project (6)

이번 시간에는 조금 더 나아가 세부적인 부분을 만들겠습니다. 먼저 삭제와 수정을 글씨가 아닌 저번에 static에 넣은 이미지로 바꿔보겠습니다. postapp/templates/detail.html 되게 간단합니다. 수정과 삭제가 있던 부분에 static에 있는 이미지의 주소를 걸어주면 짜잔 글씨가 이미지로 바뀌어 정상작동이 되는 모습을 확인할 수 있습니다. 이렇게 수정과 삭제 버튼을 만들어 주었다면 더 나아가 모든 사용자가 아닌 작성자와 현재 접속자가 일치할 경우에만 수정과 삭제 버튼이 나오도록 해보겠습니다. 먼저 detail.html 맨 위에 style 속성을 추가하여 줍니다. .hidden { display: none } 이 style는 hidden 숨기라는 속성입니다. 이 속성을 이제 이렇게 수정..

KKU likelion django project (5) 번외

지난 강의 이어서 지난 강의의 문제점 postapp/templates/new.html 새로 글을 쓸때의 문제점이 발생하였다. 이미지란 파일을 올리기 위해서는 form의 method가 post여야 하고 enctype="multipart/form-data" 가 꼭 설정이 되어있어야 한다. 저번 강의에서는 이러한 설정을 form말고 div에 넣어주어 오류가 생겼었다. 또한 method가 post이니 csrf_token을 꼭 설정하여 주자 {% csrf_token %} 제목: 본문: 이미지 : 이제 views.py에서 문제점이 발생하였다. def create(request): post = Post() post.title = request.POST['title'] post.body = request.POST['b..

KKU likelion django project (5)

오늘 목표 1) 사진 업로드 2) 디자인 구글 드라이브에 있는 저번 시간까지 진행한 likelion_4 압축파일과 img폴더를 다운로드하여 수업을 준비합시다. 저번 시간까지의 내용 로그인하여 접속을 한 뒤에 글과 댓글 그리고 좋아요 기능까지 완성되었습니다. 이제 글만 쓸수있는 프로젝트에서 사진까지 넣을수있게 설정을 해줍니다. 먼저 media파일과 static파일을 사용할 수 있게 pillow를 설치하여 줍시다. pip install Pillow pillow를 설치하였다면 static파일을 담을 static폴더를 postapp 아래에 생성하여 줍니다. 이제 settings.py에 static의 경로를 알려주게 추가합니다. STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'po..

KKU likelion django project (4)

--- title: "LikeLion KKU like class" date: 2019-10-09 00:00:00 -0400 categories: jekyll update --- # like 추가하기. - 유저는 여러 개의 메모에 좋아요를 할 수 있고, 메모는 여러 유저로부터 좋아요를 받을 수 있다. ### models.py 추가 및 수정 ``` from django.contrib.auth.models import User name_id = models.ForeignKey(User, on_delete = models.CASCADE) likes = models.ManyToManyField(User, related_name='likes') @property def total_likes(self): return..

KKU likelion django project (3)

--- title: "LikeLion KKU postedit class" date: 2019-10-10 00:00:00 -0400 categories: jekyll update --- # 게시글을 수정해보자. ### templates폴더 안에 edit.html 생성 하기 ``` {% csrf_token %} 제목: 본문: ``` ### models.py 추가 및 수정 ``` def edit(request, post_pk): post = Post.objects.get(pk=post_pk) if request.method == 'POST': post.title = request.POST['title'] post.body = request.POST['body'] post.pub_date = timezone.d..