일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- git
- 싸피
- react
- sqld
- 데코레이터
- 리액트
- TypeScript
- db
- PWA
- unionfind
- 14658
- SSAFYcial
- QuerySetAPI
- pwa적용하기
- SSAFY
- 백준
- VITE
- 싸피10기
- queryset
- 머신러닝종류
- 플로이드워셜
- Django
- js
- Javascript
- 싸피셜
- 셀프넘버
- Python
- 알고리즘
- vitepwa
- SQL
- Today
- Total
목록BackEnd/Django (44)
Meme's IT
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8NjeG/btst6kafJtP/vXmo2Y46qzSYRnsdW26IIK/img.png)
Django는 추가 설치나 설정 없이 자동으로 관리자 인터페이스를 제공함 (server를 처음 만들고 서버주소/admin/의 위치에 나오는 페이지) # admin 계정 생성 python manage.py createsuperuser 이름, 이메일(생략가능), 비밀번호를 입력하면 생성 완료 SQLITE EXPLORER > db.sqlite > auth_user에서 확인 가능 # 앞서만든 Model을 사용하기 위해 admin에 등록해주기 # articles/admin.py 위치/ Article은 model이름 from django.contrib import admin from .models import Article admin.site.register(Article) # 서버를 실행한 후, admin페이지에..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NNCYJ/btstYbeEutS/OieM3QCKsGGZtPQK36kNwK/img.png)
# Django의 MTV 패턴 Model: 데이터와 관련된 로직, 데이터베이스(SQLite)를 관리 Template: 보여지는 부분 (html파일) View: Model과 Template와 관련된 로직이 들어가는 곳, 중계자의 역할을 함 그 중, Django의 Model은 DB의 테이블을 정의하고 데이터를 조작하는 등의 기능을 제공한다. Model Field DB 테이블의 필드(= 열)을 정의하며, 해당 필드에 저장되는 데이터 타입과 제약조건을 정의한다. Model Field의 종류 CharField(): 길이 제한이 있는 문자열을 넣을 때 사용(max_length가 필수 인자) TextField(): 글자의 수가 많을 때 사용 DateTimeField(): 날짜와 시간을 넣을 때 사용 auto_now:..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/M0V98/btst0bEAj7O/sOwzKUjHoZF5myTi2okQ7k/img.png)
만약 App이 많아졌을 때, 서로 겹치는 함수 이름이 있거나 / 같은 패턴의 url 주소를 이용하려면 어떻게 해야할까? 이러한 경우를 해결하기 위해, URL을 각자 APP에서 관리해야 함! App URL mapping 프로젝트와 각 앱이 URL을 나누어 정의가 되어 관리를 편하게 할 수 있다. → urls.py의 구조를 바꿔줘야한다. 한번 해보기 기존의 url의 위치는 project/urls.py → 각각의 app에 urls.py를 만들어 줘서 각자 관리 1. 기존의 url 위치인 project/urls.py파일 수정 include() 함수: 프로젝트 내부 앱들의 URL을 참조할 수 있도록 매핑해주는 역할 2. 각 app에 urls.py를 생성 # articles/urls.py from django.ur..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6edOz/btstRQ3gLq4/D9KErsrHeprko0wyhBAFFk/img.jpg)
URL 주소가 비슷한게 여러개가 있다면 일일히 쳐야할까...? urlpatterns = [ path('articles/1/', ...), path('articles/2/', ...), path('articles/3/', ...), path('articles/4/', ...), path('articles/5/', ...), .... ] 이런 번거로움을 덜기 위해 URL의 일부에 변수를 포함시키는 기능 = Variable Routing Variable Routing URL 일부에 변수를 포함시키는 것 이때, 변수는 view 함수의 인자로 전달 할 수 있다. 구조 path converter란? : URL 변수의 타입을 지정해 줌 (str, int등 5가지의 타입을 지원) 쓰는 방법 1. urls.py에서 경로..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LOiF3/btstQViNT4v/rXUjjWnYVgkKFxkTXkEBAK/img.png)
사용자의 입력 데이터를 받아(throw) 그대로 출력(catch)하는 서버 만들기 1. urls.py의 urlpatterns에 경로를 추가해줌 urlpatterns = [ path('throw/', views.throw), path('catch/', views.catch), ] 2. views.py 에 throw함수와 catch함수 작성 def throw(request): return render(request,'articles/throw.html') def catch(request):# 사용자로부터 요청(request)를 받아옴 message = request.GET.get('message')# request에서 사용자 입력 데이터를 찾음 context = { 'message' : message,# c..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bSqAhJ/btstS9GZNEj/S8F3cH77UnX5b1t3o8N8dk/img.png)
HTML Form : HTTP 요청을 서버에 보내는 가장 편리한 방법 (ex: 로그인 창) 사용자로부터 할당된 데이터를 서버로 전송 웹에서 사용자 정보를 입력하는 여러 방식(text, password, checkbox 등)을 제공 검색어: # Input의 요소 type = 역할 name = input의 핵심 속성 / 서버로 보내는 key의 역할 id = label이 붙을 위치를 정해줌 여기서, form의 핵심 속성은 "데이터를 어디(action)로 어떤 방식(method)으로 요청할 건지?" 인데 그것을 담당하는 것이 input의 name이다. => Query String Parameter을 이용하기 위한 방식 Query String Parameter 사용자의 입력 데이터를 URL 주소에 파라미터를 통해..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b90AP0/btstG6S7tEo/0RVqGRjfvTewNhJxP5HJNk/img.png)
많은 HTML이 있는데, 모든 HTML파일에 모두 bootstrap을 적용하고 싶을 때, 하나하나 CDN을 작성해줘야할까? 반복작업이 너무 많은데 일일히 복붙을 해야하나? → 이런 경우에 Template 상속을 이용한다. Template 상속이란? 베이스가 되는 HTML파일을 하나 만들어 두고, 그 파일안에 페이지들의 공통요소를 작성해놔서 하위 템플릿들은 상속받아서 반복되는 요소들은 일일히 만들필요가 없게 해주는 시스템 # 상속의 조건 1. 페이지의 공통요소를 포함 2. 하위 템플릿이 재정의할 수 있는 공간을 정의 # Template 상속의 요소들 1. extend tag 자식(하위) 템플릿이 부모 템플릿을 확장한다는 것을 알리는 역할 반드시 템플릿의 최상단에 작성되어야 함 2개 이상은 사용할 수 없다 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bSKzej/btstM1J9Jv0/Nh38FR4YnmrqUU1ee8AXK1/img.png)
Django Template System이란? : 데이터 표현을 제어하면서, 표현과 관련된 부분을 담당한다. Django Template Language(DTL)을 이용해서 구현한다. Django Template Language(DTL)이란? : Template에서 조건, 반복, 변수 등의 프로그래밍적 기능을 제공하는 언어로, HTML을 훨신 더 편하게 작성할 수 있다. DTL의 요소들 1. Variable(변수) render 함수의 세번째 인자로 딕셔너리 데이터를 사용(주로 context이용) 딕셔너리 key에 해당하는 문자열이 template에서 사용할 수 있는 변수명이 됨 dot(.)을 사용하여 변수 속성에 접근할 수 있다. views.py에서는 context라는 이름을 가진 딕셔너리를 만들어 준다..