웹 프로그래밍 56

[ WEB ] 01. 쿠키와 세션

쿠키 & 세션 Cookie & Session Cookie Session 저장위치 Client Server 저장형식 Text Object 만료시점 쿠키 저장시 설정 (설정 없으면 브라우저 종료 시) 정확한 시점 모름 리소스 클라이언트의 리소스 서버의 리소스 용량제한 한 도메인 당 20개, 한 쿠키당 4KB 제한없음 저장 위치 쿠키 : 클라이언트의 웹 브라우저가 지정하는 메모리 or 하드디스크 세션 : 서버의 메모리에 저장 만료 시점 쿠키 : 저장할 때 expires 속성을 정의해 무효화시키면 삭제될 날짜 정할 수 있음 세션 : 클라이언트가 로그아웃하거나, 설정 시간동안 반응이 없으면 무효화 되기 때문에 정확한 시점 알 수 없음 리소스 쿠키 : 클라이언트에 저장되고 클라이언트의 메모리를 사용하기 때문에 서버..

[ WEB ] 00. 브라우저의 동작 방법

브라우저 동작 방법 브라우저가 어떻게 동작하는지 아세요? 웹서핑을 하다보면 우리는 여러 url을 통해 사이트를 돌아다닌다. 이 url이 입력되었을 때 어떤 과정을 거쳐서 출력되는걸까? WEB의 기본적인 개념이지만 설명하기 어려울 것이다.. 렌더링? 파싱? 브라우저 주소 창에 http://naver.com을 입력했을 때 어떤 과정을 거쳐서 네이버 페이지가 화면에 보이는 지 알아보자 브라우저 주요 기능 사용자가 선택한 자원을 서버에 요청하여 브라우저에 표시된다. 자원은 html 문서, pdf, image 등 다양한 형태가 있다. 자원의 주소는 url에 의해 정해진다. 브라우저는 html과 css 명세에 따라 html 파일을 해석해서 표시한다. 이 '명세'는 웹 표준화 기구인 W3C(World ..

[ Django ] 08. Django에서 JavaScript 이용하여 좋아요 구현하기

자바스크립트를 활용해 좋아요 구현 base.html _like.html {% if user in article.like_users.all %} {% else %} {% endif %} {{ article.like_users.count }} {% if user in article.recommend_users.all %} 추천 취소 {% else %} 추천 {% endif %} index.html {% load static %} ... detail.html {% load static %} ... like.js const likeButton = document.querySelectorAll('.like-button') likeButton.forEach(button =>{ button.addEventListen..

[ Django ] 07. Django relation M:N (profile, follow, paging)

M:N 관계 ex) 의사-환자 모델링 models.py from django.db import models # Create your models here. class Doctor(models.Model): name = models.CharField(max_length=20) def __str__(self): return f'{self.pk}번 의사 {self.name}' class Patient(models.Model): name = models.CharField(max_length=20) def __str__(self): return f'{self.pk}번 환자 {self.name}' class Reservation(models.Model): doctor = models.ForeignKey(Doctor..

[ Django ] 06. Django relation 1:N 복습

1:N 관계 복습 유저 생성 ORM User.objects.create(username='test', password='test') 게시글 생성 ORM $ python manage.py shell_plus user1 = User.objects.get(pk=2) In[] user1 Out[] Article.objects.create(title='aaaa', content='bbbbb', user=user1) Article.objects.create(title='aaaa', content='bbbbb', user_id=user1.pk) 댓글 생성 ORM comment = Comment.objects.get() comment.article.pk 4 comment.article.title title articl..

[ Django ] 05. Django relation 1:N (사용자 분할)

django relation 1:N 06/22 cascade만 사용 django 확장 툴 설치 $ pip install django-extensions settings에 등록해줘야 한다. 'django_extensions' 으로 등록 쉘창을 켠다 -> mysite 위치로 가서 켜야한다. $ python manage.py shell_plus ipython 설치 $ pip install ipython 0623 Admin 관리자 계정 생성 # musicians/admin.py -admin 정의 from.models import Musician, Album admin.site.register(Musician, Alubm) # bash 관리자계정 생성 python manage.py createsuperuser h..

[ Django ] 04. Django 로그인/회원가입 구현

Django 로그인 /회원가입 회원가입 # urls.py path('signup/', views.signup, name="signup"), # views.py from django.contrib.auth.forms import UserCreationForm # Create your views here. def signup(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): user = form.save() return redirect('articles:index') else: form = UserCreationForm() context = { 'form' : form } return ..

[ Django ] 02. [예습] 전생 알아보기

Past Job APP Create APP APP Name : jobs Model Class Name: Person Fields name CharField past_job TextField makemigrations로 설계도 작성 migrate로 DB에 설계도 반영 직업 리스트 https://bit.ly/past_job_list urls urls 분리 필수: 프로젝트 폴더, jobs 아래 urls app_name, path name 설정 필수 views /index/ index.html 렌더링 /past_life/ 사용자가 form으로 날린 이름을 받아 저장 DB에 사용자가 입력한 이름이 있는지 확인 만약 사용자가 입력한 이름이 DB에 있다면 기존 그 사용자의 past_job을 past_job 변수에 담..

[ Django ] 01. Django ORM 활용

Django ORM Object Relational Mapping 스프링에서는 mybatis를 썼었고, 장고에서는 이를 위한 기능이 따로 존재한다! 드디어 models.py를 사용하기 시작합니다~ 파이썬의 객체와 DB의 객체를 Mapping해주어야 한다. 그럼 파이썬의 객체는 어떻게 생성하는 가? Articles에 models 작성 # models.py # Create your models here. class Article(models.Model) : # articles_article # CharField 는 글자 수 제한 할 때 사용 title = models.CharField(max_length=150) content = models.TextField() created_at = models.Date..

[ Django ] 00. Django 알아보기

django 파이썬으로 이루어진 WEB 프레임워크. django의 성격 파이썬을 이용하기 때문에 개발 속도가 빠르다. 프레임워크라는 것은? ----> 프랜차이즈의 성격을 갖는다 ( 내가 다 줄테니 너넨 사용만 해라~ ) why django? 풍부한 언어와 프레임워크 사용 경험을 배양하기 위함. MTV 스프링의 MVC패턴과 같은 패턴임 Model - Template(사용자가 보는 화면) - View(중간 관리자) URLs: 단일 함수를 통해 모든 URL 요청을 처리하는 것이 가능하지만, 분리된 뷰 함수를 작성하는 것이 각각의 리소스를 유지보수하기 훨씬 쉽습니다. URL mapper는 요청 URL을 기준으로 HTTP 요청을 적절한 view로 보내주기 위해 사용됩니다. 또한 URL mapper는 URL에 나타..