본문 바로가기

Web Programming

(50)
백엔드_CRUD 실습 3 오늘의 해볼 실습은 CRUD를 마무리하는 작업이다. 보완을 통해서 보다 나은 성능의 CRUD 처리가 가능하게 할 것이다. 진행될 작업은 크게 3가지 이다. 1. Home 페이지에서 글 최신순 나열 2. CSRF 보안 3. Templates 폴더 정리 1. Home 페이지에서 글 최신순 나열 일반적으로 웹 페이지 게시판에서 글은 가장 최신의 글이 가장 먼저 보이게 한다. 그래서 해당 페이지로 들어오면 눈에 띌 수 있도록 가장 위에 보여줘야 한다. 따라서 글을 최신순으로 나열하는 것은 간단하지만 사용자 편리성을 위해 중요한 부분이다. 이러한 기능을 장고에서는 단 한줄을 통해 쉽게 해결이 가능하다. # blogProject/blog/views.py # Create your views here. def home..
백엔드_CRUD 실습 2 오늘의 해볼 실습은 지난 admin 기능을 통해 글을 작성하고 수정하고 삭제할 수 있었던 CRUD에서 웹 페이지 내에서 작성, 수정, 삭제를 할 수 있는 완전한 CRUD를 업그레이드를 해보려 한다. CRUD는 데이터를 처리하는 4가지 방법이지만, 좀 더 세부적으로 나누게 되면 7 가지의 기능으로 이야기 된다. C - new(글 작성 공간 띄워주기), create(실제 글(data)를 만들기) R - home(전체 글 화면 보기), detail(글 하나하나 세부적으로 보기) U - edit(글 수정 공간 띄워주기), update(실제 글(data) 수정하기) D - delete(글 삭제하기) 이중에서 우리는 실제 R의 home과 detail만 웹 페이지에서 이용할 수 있었고 나머지는 admin에서 이용할 ..
백엔드_CRUD 실습 1 오늘 해볼 실습의 내용은 크게 3가지 이다. 1. Models.py 를 활용해 우리가 웹 서버에서 관리할 데이터의 양식 정하기 2. Admin 페이지를 통해 원하는 데이터를 보다 쉽게 관리하기 3. Admin 페이지에서 관리중인 데이터를 보기(CRUD 중 R에 해당하는 부분) 실습에 앞서, django를 사용할 기본적인 세팅을 준비한다. 가상환경 만들기 - 가상환경 동작시키기 - 장고 설치하기 - 프로젝트 만들기 - 앱 만들기 - 프로젝트와 앱 연결하기 1) 가상환경 만들기 & 동작시키기 $ python -m venv myvenv # myvenv 이름으로 가상환경 만들기 $ source myvenv/Scripts/Activate # 가상환경 동작시키기 2) 장고 설치하기 $ pip install djan..
AWS_Django 프로젝트 배포하기 Elastic Beanstalk 를 통한 배포하는 법에 대해 알아보고자 한다. AWS에서 비교적 간단하게 장고프로젝트 배포를 위한 Elastic Beanstalk 서비스가 있다.단, 유의 사항이 4가지가 있다 1) AWS 과금방식, 1년 후에 과금이 되므로 주의하기2) AWS 계정 생성 3) 험난한 배포의 길 (실습 중 오류 발견하기)4) awsebcli 설치 (eb requirements.txtcs # .ebextensions 폴더manage.py 와 같은 계층에 .ebextensions 폴더 만들기django.config 파일 추가 .ebextensions/django.config123option_settings: aws:elasticbeanstalk:container:python: WSGIPath:..
PostgreSQL DB Django 프로젝트에서 사용하기 # 이론sqlite는 가벼운 DB, 본격적인 창업을 위한 대규모 데이터를 감당할 여러 DB 중 PostgreSQL 사용!(PostSQL 사용 이유는 무료이면서 설치와 사용이 쉬운 편이라서!) DB = 정보 저장 공간 1)지금까지 sqlite를 어떻게 사용해왔나settings.py 에서 sqlite3 를 가르키게 된다(연동).그리고 migrate를 통해 연결이 된다! 2) PostgreSQL 을 어떻게 사용할 것인가?(그렇다면 다른 DB를 쓰기위해서는)(1) 새로운 DB 설치(2) DB 연결(가르키기)(3) 연결(migrate) # 실습 # 새로운 DB 설치하기PostgreSQL 사이트 들어가서 Os에 맞게 설치password 설정할 때 superuser의 password이므로 기억하기!port 번호도 함..
App 재사용(패키징) # 이론하나의 앱은 하나의 기능만을 설계해서 사용!그렇다면 여러 웹 사이트를 만들면서 반복해서 사용하는 기능(앱)이 존재한다! 재사용 때 마다 처음부터 끝까지 코딩하는 것이 번거로울 수 있다-> 패키징을 통해 묶어둔다. 다른 프로젝트에서 원하는 앱을 재사용할 수 있다재사용에서 핵심은 앱을 묶기+풀기, 이렇게 두 가지로 나뉜다! 몇 개의 파일을 기록해두고 내용을 복붙해두면 된다.4개 - 기능명세서, 라이센스, 설치 방법 과정, 파이썬파일 아닌 파일들Readme.rst, LICENSE, setup.py, MANIFEST.in # 실습 # 폴더 생성(django-app이름)login 앱을 패키징하고 싶으면 프로젝트 내부에 새로운 폴더 생성해당 폴더에 기존 패키징하고 싶은 앱의 복사가 아닌 이동 수행! # 파일..
Heroku 배포하기 개발한 환경과 실제 웹사이트에서 많은 차이점들이 있기에 기존의 세팅들을 약간 수정해줘야 합니다. ## settings.py 수정하기우리가 개발 시 사용했던 secret키와 debug 는 배포에 있어 문제를 일으킬 수 있기에 약간의 수정이 필요합니다 # settings.py # SECURITY WARNING: keep the secret key used in production secret!#SECRET_KEY = ''SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', '"YOUR_SECREY_KEY")YOUR_SECREY_KEY') # SECURITY WARNING: don't run with debug turned on in production!#DEBUG = Tru..
Blog 보충(로그인 요구, 내가 쓴글) 1. 로그인 요구하기 참고: https://kite.com/python/docs/django.contrib.auth.decorators.login_required 12345678# projecgt/blog/views.py from django.contrib.auth.decorators import login_required @login_requireddef blogpost(request):...Colored by Color Scriptercs 2. 내가 쓴글 가져오기filter 사용 @login_requireddef mypost(request): blogs = Blog.objects.all() blog_list = blogs.filter(username=request.user.username) # 내가 ..