일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- programmers
- minimum spanning tree
- codetree
- 소프트웨어공학
- MyPlaylist
- 함밥
- B대면노래방
- 파이썬
- 코드트리
- 모각코
- 최소스패닝트리
- 백트래킹
- Bellman-Ford
- 백준
- 데이터베이스
- 프로그래머스
- Kruskal
- 종합설계
- django
- Planned
- 동적계획법
- DFS
- SQL
- 실습
- DP
- 마라마라빔
- Today
- Total
목록Django (21)
Leta Learns
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 라는 변수..
models.py from django.db import models # Create your models here. class Blog(models.Model): title = models.CharField(max_length=200) writer = models.CharField(max_length=10) pub_date = models.DateTimeField() body = models.TextField() 1. django의 DB로부터 models라는 모듈을 import (기본 세팅되어있음) 2. 클래스명은 항상 대문자로 시작. models.Model => 위에서 import한 models라는 모듈 안에 있는 Model이라는 클래스를 상속. 3. 필드타입 및 필드옵션은 외울 필요 x, 그때그때 ..
$ python -m venv [가상환경명] #가상환경 생성 $ source [가상환경명]/Scripts/activate (window) $ source [가상환경명]/bin/activate (Mac) #가상환경 실행 $ pip install django #장고 설치 $ django-admin startproject [프로젝트명] #새로운 프로젝트 생성 (pycharm pro 버전 사용하면 그냥 django project로 생성하면 됨. 가상환경, templates 폴더 자동으로 생성) $ python manage.py startapp [app이름] #새로운 앱 생성 => settings.py INSTALLED_APPS에 [app 이름] 추가 #프로젝트에 앱 연결 views.py 함수 작성 urls.py..
[4] pybo/forms.py에 장고 폼 작성하기 from django import forms from pybo.models import Question class QuestionForm(forms.ModelForm): class Meta: model = Question fields = ['subject', 'content'] 장고 폼 : forms.Form을 상속받는 폼, forms.ModelForm을 상속받는 모델 폼 (2가지로 구분 가능) 모델 폼 : 모델과 연결된 폼, 모델 폼 객체를 저장하면 연결된 모델의 데이터 저장 가능. 장고 모델폼은 내부 클래스로 Meta 클래스를 반드시 가져야 함. Meta 클래스에는 모델 폼이 사용할 모델과 모델의 필드들을 적어야 한다. ex) QuestionForm..
2-05 URL 더 똑똑하게 사용하기 헷갈리므로 링크 전체 참고할 것. 참고 : wikidocs 점프 투 장고 https://wikidocs.net/70741 URL 네임스페이스 알아보기 pybo/urls.py 에 네임스페이스 추가하려면 app_name 변수에 네임 스페이스 이름 저장하면 됨. app_name = 'pybo' 2-06 답변 등록 기능 만들기 csrf (사이트 간 요청 위조, 크로스 사이트 요청 위조, Cross-site request forgery) : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격. 사용자가 웹사이트에 로그인한 상태에서 csrf 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격명령을 믿을 수 있는 ..
질문 목록 기능 구현하기 [1] Question 모델 데이터 작성일시 역순으로 조회하기 question_list = Question.objects.order_by('-create_date') order_by 함수 : 조회한 데이터를 특정 속성으로 정렬 -create_date : - 기호가 앞에 붙어있음 => 작성일시의 역순 [2] render로 화면 출력하기 return render(request, 'pybo/question_list.html', context) return 함수 : context에 있는 Question 모델 데이터 question_list를 pybo/question_list.html 파일에 적용하여 HTML 코드로 변환. 장고에서는 이런 파일 (pybo/question_list.html..
슈퍼 유저 생성 : python manage.py createsuperuser admin.py 장고 셸로 수행했던 데이터 저장, 수정, 삭제 등의 작업을 장고 Admin에서 할 수 있음. from django.contrib import admin from .models import Question class QuestionAdmin(admin.ModelAdmin): search_fields = ['subject'] #장고 Admin에서 제목으로 질문을 검색할 수 있도록 검색 항목 추가. admin.site.register(Question) #Question 모델을 장고 Admin에 등록. 참고 : wikidocs 점프 투 장고 https://wikidocs.net/70718
admin, auth, content types, sessions 앱은 장고 프로젝트를 만들 때 기본으로 생성되어 설치. BASE_DIR : 프로젝트 디렉터리 python manage.py makemigrations : 테이블 작업 파일 생성 python manage.py migrate : 실제 테이블 생성 (ok 짱 많이) models.py 클래스로 생성. 어떤 모델이 다른 모델을 속성으로 가지면 ForeignKey 이용 (다른 모델과의 연결을 의미) on_delete=models.CASCADE : 답변에 연결된 질문이 삭제되면 답변도 함께 삭제 (Answer 모델) 모델 만든 후 settings.py 에서 앱 추가. ( INSTALLED_APPS = ) 앱 추가 안 하면 -> 장고가 앱 인식 X ->..