📢 공지사항
home

노트

태그
속성
front - end : Java Script / HTML / CSS
Back - End : Maria DB, NGINX, Django, Docker
Django Container - django를 이용해서 만든 서비스의 집합체
Maria DB Container - db관련
Nginx Container - 서버 관련
→ docker로 구축 → VULTR를 통해 타인이 볼 수 있음
django cycle
client가 web server(nginx, apache)에게 요청을 하면 webserver는 반응을 함
WSGI는 web server와 django framework를 이어주는 역할을 함
view는 요청받은 db를 저장하거나 db작업, pdf를 만들기위한 작업 등 역할에 맞는 작업을 개발하는 것.
template는 디자인 하는 것
cf) 파이참 사용 시 tools 들어가서 terminal cdm으로 설정하기!
프로젝트 vs 앱
: 앱은 웹로그 시스템, 공공 기록 데이터베이스 또는 간단한 설문조사 앱과 같은 작업을 수행하는 웹 응용 프로그램입니다. 프로젝트는 특정 웹사이트에 대한 구성 및 앱 모음입니다. 프로젝트에는 여러 앱이 포함될 수 있습니다. 앱은 여러 프로젝트에 있을 수 있습니다.
설문조사앱 만들기
사전 준비 : django-admin startproject mysite 를 통해 mysite 생성
1.
polls라는 디렉토리 생성
2.
polls/views.py 다음 코드 넣기
a.
fromdjango.httpimport HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.")
Plain Text
복사
3.
polls 안에 urls.py 파일 만들기
4.
polls/urls.py 다음 코드 넣기
a.
fromdjango.urlsimport path from.import views urlpatterns = [ path('', views.index, name='index'), ]
Plain Text
복사
5.
mysite/urls.py 다음 코드 넣기
a.
fromdjango.contribimport admin fromdjango.urlsimport include, path urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ]
Plain Text
복사
최상위 url에서 url을 pathing하고 path별로 다른 앱으로 분리
GIT
- 사용 이유 : 코딩을 위한 모든 히스토리 작성
GITHUB
- 사용 이유 : 코드를 타인과 공유가 가능, 만약 오류가 있다면 타인과 이야기 가능
git bash사용법
1) ls
2) 내가 올리고 싶은 파일 위치 cd로 들어가기
3) git init
4) git add .
5) git commit
6) i를 눌러서 내가 원하는 title 달기
7) esc를 눌러서 :wq ← 저장한다는 의미
git hub 사용법
1) 로그인
2) Repository name에 내가 올리고 싶은 파일 이름 작성
3) Description은 설명란
4) create repository
5) 다시 bash로 돌아간 다음 git remote add origin "brbr" 작성
6) git push -u origin main
만약 6번이 제대로 실행이 되지 않는다면
6-1) git branch -M main
6-2) git push -u origin main
하면 되기는 했었음
데이터베이스(DB)
ForeignKey(외래키) : 데이터 모델을 참조하겠다는 의미
cascade : 종속됨을 의미
makemigration : 모델들은 데이터베이스 내에 생성할 수 있도록 설계도를 만드는 작업
api = 개발자가 필요로 하는 데이터를 뽑아낼 수 있도록 만들어 놓은 함수 또는 서버 혹은 데이터베이스에게 데이터를 입력할 수 있도록 만들어 놓은 함수
장고 admin 사용법
- 거의 모든 웹에 admin이 사용됨
장고 view 사용, html 불러오기 및 연결
request → response이 원칙임
url에서 사용되는 int 뒤에 쓰여지는 것은 view에 request 뒤에 쓰여지는 것과 동일하여야 함
수정범위를 줄이기 위해서 view와 template를 나눔
{% for choice in question.choice_set.all %} = model.py에 class choice안에 Question안에 외래키를 모두 가져와라라는 의미
장고는 url마다 이름을 설정 할 수 있음 → 하드코딩 되어 있는것을 바꿀 필요가 없어짐
cf) 앞으로 코드를 작성할 때 어떻게 해야 수정범위를 줄일 수 있는지 고민해봐야함.
장고 from 사용, 데이터 받아오는 법
input : 사용자가 입력할 수 있게 화면에 보여주는 태그
label : 이름을 보여주는 태그
post와 redirect는 같이 쓰임
reverse : url을 하드코딩하지 않기 위해, 앱네임,url네임 사용
pluralize : 단수로 쓸꺼니? 복수로 쓸꺼니?
pk : db 내 하나의 열, 중복x
class 사용
- 사용한 template 이름
- template에서 사용한 데이터 모델을 명시
- 위에서 사용한 def보다 코드가 짧음
- context와 모델이름과 다르다면 따로 context_object_name 다시 설정
- 필요한 데이터는 get_queryset함수로 다시 설정
- get은 데이터 조회를 위한 요청 방식
- post 방식은 method=post라고 기재를 해야함
cf) 처음 장고 배울때는 class보다는 def를 더 자주 사용하는 게 나음
- 어려울 수 있어서
장고 test사용, test case 작성, unit test
test 사용 이유
1) 끊임없이 오류가 발생 할 것이기 때문
2) 많은 사람들과 협업을 할 것이기 때문
3) 시간 절약
4) 문제 예방 가능
cf) py manage.py shell 에서 나가는 법 exit → ctr+z
__ lte = less than equal
css연결
staticfile 은 분리가 가능
customize
만약 field가 많다면 여러개로 구분 가능
admin 관련 template는 최상위 위치에서 관리