일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Django
- 14658
- sqld
- js
- Python
- QuerySetAPI
- TypeScript
- Javascript
- db
- PWA
- 백준
- git
- VITE
- queryset
- 싸피
- unionfind
- 싸피셜
- SSAFY
- 리액트
- 알고리즘
- 싸피10기
- 셀프넘버
- 머신러닝종류
- react
- 데코레이터
- SQL
- 플로이드워셜
- pwa적용하기
- SSAFYcial
- vitepwa
- Today
- Total
목록BackEnd (49)
Meme's IT
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eeCt1r/btsvNuDpP9n/bvO2JlIKr7jxKgL1hcBaok/img.png)
https://memezz.tistory.com/22과 이어집니다. 1. urls.py에 path추가해주기 from django.urls import path from . import views urlpatterns = [ # 전체 게시글 조회 path('', views.index, name='index'), # 단일 게시글 조회 path('/', views.detail, name='detail'), # 게시글 새로 쓰기 path('new/',views.new, name='new'), path('create/', views.create, name='create'), # 지우기 path('/delete/',views.delete, name='delete'), ] 2. views.py에 delete 함수 추..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b0I6zK/btsvWR5ChL8/1xAqrvewVQ5MkoGPbTDWv0/img.png)
앞의 글과 이어집니다. 게시판에서 새로운 글을 작성할 수 있는 페이지를 만들어 보자 이때, 필요한 함수는 총 몇가지 일까? 사용자 입력 데이터를 받을 페이지를 렌더링 하는 new함수와 사용자가 입력한 데이터를 받아 DB에 저장하는 create함수가 필요하다. # new함수 1. url 추가해주기 from django.urls import path from . import views urlpatterns = [ # 전체 게시글 조회 path('', views.index, name='index'), # 단일 게시글 조회 path('/', views.detail, name='detail'), # 게시글 새로 쓰기 path('new/',views.new, name='new'), path('create/', vi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/t3aXW/btsvP96gs5t/qCSmLMVlrBq8T8mRjTRphK/img.png)
앞서, Django shell에서 했던 QuerySet API를 view함수에서도 사용할 수 있다. # 조회 - 전체 게시글 조회 게시판의 글을 한번에 볼 수 있는 index페이지 구현해보기 1. url 경로부터 생성, 편한 url이동을 위해 name을 붙여준다. # project/urls.py from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('articles/', include('articles.urls')), ] # articles/urls.py (생성해야함) from django.urls import path from . im..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/uCZ8e/btst6OJBief/azt0G4wZUAEKnF4oVMG4Rk/img.png)
# QuerySet API의 구조 사용처: Django shell Django shell 사용법 Django 환경안에서 실행되는 python shell으로, 입력되는 QuerySet API 구문이 프로젝트에 영향을 미침 (1) 외부 라이브러리 설치, 설정 pip install ipython pip install django-extensions # setting.py 위치 INSTALLED_APPS = [ 'articles', 'django_extensions',#추가 .... ] pip freeze > requirements.txt (2) 실행 python manage.py shell_plus 이후, 창을 업데이트하려면 crtl + L 종료하려면 exit 1. 데이터 만들어 보기 첫번째, 하나하나 넣어주..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjJPey/btstXxo3zCq/yyiNcfSXU2KBwEYjX4bWAk/img.png)
# ORM이란? = Object Relational Mapping 객체 지향 프로그래밍 언어(ex. 파이썬)를 사용하여 호환되지 않는 유형의 시스템 간에 데이터를 변환하는 기술 # QuerySet API ORM에서 데이터를 검색, 필터링, 정렬 및 그룹화하는데 사용하는 도구 즉, SQL이 아닌 Python 코드를 이용해서 DB의 데이터를 처리할 수 있도록 만들어주는 API 쓰는 이유? 1. 데이터베이스 쿼리를 추상화해서 Django 개발자가 데이터베이스와 직접 상호작용하지 않아도 되도록 한다. 2. 데이터베이스와의 결합도를 낮추고, 개발자가 더욱 직관적이고 생산적으로 개발할 수 있도록 도와준다. 여기서, Query란? 데이터베이스에 특정한 데이터를 보여달라는 요청 즉, "쿼리문을 작성한다" = 원하는 데..
![](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..