일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코드트리
- 백준
- 소프트웨어공학
- BFS
- 파이썬
- 데이터베이스
- 실습
- django
- DFS
- DP
- SQL
- 그리디알고리즘
- codetree
- 백트래킹
- Kruskal
- MyPlaylist
- Bellman-Ford
- 마라마라빔
- 장고
- minimum spanning tree
- 함밥
- 최소스패닝트리
- 동적계획법
- 프로그래머스
- 알고리즘
- 모각코
- B대면노래방
- 종합설계
- Planned
- programmers
- Today
- Total
목록django (27)
Leta Learns
account/views.py from django.shortcuts import render, redirect from django.contrib.auth.forms import AuthenticationForm, UserCreationForm from django.contrib import auth def signup_view(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): user = form.save() auth.login(request, user) return redirect('home') return redirect('account:signup') else: form =..
python manage.py startapp account #account 앱 생성 => account/urls.py 정의, settings.py, modelproject/urls.py 수정 account 폴더 내에 templates 폴더 생성 => signup.html, login.html 생성 (signup, login 페이지 모두 ModelForm 사용) => account/views.py, account/urls.py에 새 html파일들 연결 account/views.py (login 구현) from django.shortcuts import render, redirect from django.contrib.auth.forms import AuthenticationForm from django...
내부에 필요한 input값들을 일일이 추가하여 사용자로부터 필요한 데이터들을 받아왔음. => 장고에서는 Form 기능 제공 (쉽고 빠르게 구현 가능) Form 장점 form 태그 내부에 input 태그들 자동 생성 is_valid() => 유효성 검사 fast forms.py (app 폴더 안에 생성하기) from django import forms from .models import Blog class BlogForm(forms.ModelForm): class Meta: model = Blog fields = ['title', 'writer', 'body', 'image'] => 블로그 모델(model = Blog)의 form 내부에 사용할 필드(컬럼)를 설정한 것. Meta 클래스 : 데이터에 대한 ..
static : 개발자가 준비하는 파일 media : 이용자들이 올리는 파일 settings.py (=> media 설정) MEDIA_ROOT = os.path.join(BASE_DIR, 'media') #이용자가 업로드한 파일을 모아두는 곳 MEDIA_URL = '/media/' urls.py (=> media 설정) from django.contrib import admin from django.urls import path, include # include 작업을 분리해서 앱의 urls.py로 넘겨준다 import blog.views #static, media 관련 내용 import from django.conf import settings from django.conf.urls.static imp..
static 파일 : 이미지, CSS, JS 파일처럼 내용이 고정되어 있어서 응답을 할 때 별도의 처리 없이 파일 그대로 보내주면 되는 파일들 => 미리 저장해두고 필요할 때 불러오는 파일 앱 폴더 안에 static 폴더 생성 이미지 다운 후 static 폴더에 해당 이미지 저장 settings.py import os from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'blog', 'static') # BASE_DIR/blog/static # os.path.join(BASE_DIR, '앱이름', 'st..
template 상속 : 기반이 되는 하나의 template을 만들고, 그것을 기반으로 다른 html을 작성하는 기법 => base.html (project 폴더 안에 templates 폴더 생성한 후 base.html 작성) (그동안 앱 안에 templates 만들어줬던 거랑 다름) {% block content %} {% endblock %} => 장고 내장 명령어. block content와 endblock 사이에 페이지마다 필요한 정보가 들어감. base.html 생성한 후에 장고에게 생성했다고 알려줘야 함. project폴더에 있는 settings.py TEMPLATES에서 'DIRS'에 빈 리스트가 있는데 해당 리스트에 base.html의 경로 넣기. => [프로젝트 폴더명]/templates..
delete는 별도의 html 파일 만들 필요 x views.py (=> delete 함수 정의) def delete(request, id): blog = Blog.objects.get(id=id) blog.delete() return redirect('home') 어떤 글을 삭제할 것인지 id 받고 그 id에 해당하는 게시글을 blog 변수에 담는다. blog.delete() 함수로 삭제하고 삭제한 후에는 urls.py에서 name="home"인 주소로 redirect urls.py path('delete/', delete, name='delete'), 마지막으로 detail.html에서 삭제하기 버튼만 만들어주면 끝. Delete Post => urls.py에서 path converter로 id값 받..
update.html 만들고 views.py, urls.py 수정 글을 update 하기 위해 필요한 정보들 어떤 글을 수정할 것인지 (글의 id) 수정하기 전 내용 {% url 'update' blog.id %} => 링크를 눌렀을 때 update하고자 하는 글의 id를 넘겨준다. views.py의 update함수에 blog.id를 인자로 넘김. urls.py path("update/", update, name="update") update/ => 글의 id를 id라는 변수로 받겠다는 뜻 views.py def update(request, id): blog = Blog.objects.get(id = id) return render(request, 'update.html', {"blog":blog}) b..
HTTP의 GET, POST 메소드 GET => 데이터를 얻기 위한 요청, 데이터가 URL에 보임 POST => 데이터를 생성하기 위한 요청, URL에 데이터 노출 x, csrf 공격 방지 csrf (사이트 간 요청 위조, 크로스 사이트 요청 위조, Cross-site request forgery) : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격. 사용자가 웹사이트에 로그인한 상태에서 csrf 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격명령을 믿을 수 있는 사용자가 발송한 것이라고 판단. -> 공격에 노출됨. => form 태그 안에 반드시 {%csrf_token%} 이라는 템플릿 변수 적어줘야 함. 2021.07.03 - ..
CRUD => DB 내의 데이터를 Create 생성하다 | Read 읽다 | Update 수정하다 | Delete 삭제하다 Read 웹페이지 상에서 데이터를 읽어야 하므로 띄워줄 HTML 파일 필요 => blog 앱 내에 templates/home.html views.py from django.shortcuts import render from .models import Blog # Create your views here. def home(request): blogs = Blog.objects.all() #Blog 객체를 모두 가져온다. -> Blog 테이블의 모든 row를 가져온다. return render(request, 'home.html', {'blogs' : blogs}) blogs 라는 변수..