TIL | Django # 3 & Git # 2

vel.Ash·2022년 4월 23일
0
post-thumbnail

MVT 아키텍쳐

<Model>
-데이터 구조 생성
-데이터 베이스와 소통

<View>
-웹 사이트의 로직을 담당
-model과 template 사이을 연결

<Template>
-웹 사이트의 화면 구성 담당
-동적인 화면 구성(template language 사용)

템플릿 언어

1)템플릿 변수
-형식 : {{변수명}} or {{변수명.속성}}
-템플릿이 렌더될 때 해당 변수가 의미하는 값으로 변환, 뷰(View)에서 가공한 데이터를 템플릿으로 넘겨주면 템플릿에서는 템플릿 변수를 사용해 넘겨받은 데이터에 접근 가능해짐
-점(.) 연산자 : 변수 안쪽 속성에 접근할 수 있게 해줌

2)템플릿 태그
-형식 : {% 태그 %} or {% end 태그 %}
-템플릿 작성에 로직을 적용

3)템플릿 필터
-형식 : {{변수명|필터}}
-변수를 특정한 형식으로 변환할 때 사용
-ex. {{ash|upper}} upper는 템플릿 변수가 변환되는 텍스트를 모두 대문자로 바꿔줌
ash : “good”이라면 결과값 → GOOD

4)템플릿 주석
-형식 : {# 주석 #}
-주석 처리

템플릿 상속

-하나의 웹 서비스는 무수히 많은 웹 페이지들로 이루어져 있고, 그 때 마다 중복되는 코드를 매번 쓰는 것은 비효율적 → django는 이러한 템플릿의 반복적인 부분을 템플릿 상속을 통해 해결할 수 있게 해줌
-여러 파일들의 공통적인 부분을 모아서 부모파일로 만들어두고, 자식파일에서는 공통되는 부분은 부모 파일에서 상속받고 달라지는 부분만 작성
-탬플릿 태그인 {% block %} 과 {% extends %}


동적 웹페이지 만들기

1.view에서 데이터 가공하고 데이터를 ⭐ 사전형에 담은 후 render 이용하여 템플릿으로 넘기기
<foods/views.py>

from django.shortcuts import render
from django.http import HttpResponse
from datetime import datetime

# Create your views here.
def index(request):
    today = datetime.today().date    # 변수 생성
    context = {"date":today}         # 사전형으로 가공 
    # today에 날짜를 담아서 사전형으로 context 변수에 담음 -> render 위하여 꼭 사전형이어야함!
    # render 함수의 세번째 파라미터로 넘겨줌  
    return render(request, 'foods/index.html',context=context)

2.템플릿 변수를 이용하여 뷰에서 넘어온 데이터를 템플릿에 사용
<index.html>

{% block date-block %}
  <div>{{date}}</div>
  <!-- 템플릿변수(view에서 넘겨받은 값으로 변환) 사용 -->
  <!-- 사전형이기 때문에 date라는 키를 이용해서 today value 받음 -->
{% endblock date-block %}

Git

Git의 3가지 작업 영역

1.working directory = working tree
-작업을 하는 프로젝트 디렉토리

2.staging area
-git add를 한 파일들이 존재하는 영역, 커밋을 하게되면 staging area에 있는 파일들만 커밋에 반영

3.repository
-working directory의 변경 이력들이 저장되어 있는 영역

Git status
-얘를 써서 커밋 하기 전에 staging area에 수정한 파일들이 다 들어있는지 확인하면 좋다

$ git status
# 커밋에 반영될 변경사항 
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   calculator.py

# 커밋에 반영되지 않는 변경사항 
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   License

commit 하기

<예시 1>

# 파일 들어가기 
$ cd ..
sihagwak@SiHaui-MacBookAir ~/MathTool (master)
# 파일 생성확인(Lisence, calculator.py 파일 생성 후) 
$ ls -al
total 32
drwxr-xr-x   6 sihagwak  staff   192  4 13 02:29 .
drwxr-xr-x+ 28 sihagwak  staff   896  4 13 02:15 ..
-rw-r--r--@  1 sihagwak  staff  6148  4 13 02:28 .DS_Store
drwxr-xr-x   9 sihagwak  staff   288  4 13 02:17 .git
-rw-r--r--   1 sihagwak  staff     4  4 13 02:29 Lisence
-rw-r--r--   1 sihagwak  staff    69  4 13 02:29 calculator.py
sihagwak@SiHaui-MacBookAir ~/MathTool (master)
#사용자 이름 및 이메일 주소 설정
$ git config user.name "ash"
sihagwak@SiHaui-MacBookAir ~/MathTool (master)
$ git config user.email "sasha.gwak@gmail.com"
sihagwak@SiHaui-MacBookAir ~/MathTool (master)
$ git commit -m "Creat calculator.py and License"
On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.DS_Store
	License
	calculator.py

nothing added to commit but untracked files present (use "git add" to track)
sihagwak@SiHaui-MacBookAir ~/MathTool (master)
# 커밋할 파일을 git add로 지정해줘야 함
$ git add calculator.py
sihagwak@SiHaui-MacBookAir ~/MathTool (master)
$ git add License
sihagwak@SiHaui-MacBookAir ~/MathTool (master)
# 커밋 메세지 포함하여 커밋 실행 
$ git commit -m "Creat calculator.py and License"
[master (root-commit) 6e10311] Creat calculator.py and License
 2 files changed, 7 insertions(+)
 create mode 100644 License
 create mode 100644 calculator.py

<예시 2 폴더 자체를 커밋하기>

$ mkdir meeting-log # 폴더 생성 
$ cd meeting-log
$ touch day1 # 파일 생성
$ touch day2
$ cd ..
$ git add meeting-log/  # 폴더 staging area에 추가 
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   License
	modified:   calculator.py
	new file:   meeting-log/day1
	new file:   meeting-log/day2 # 폴더 안에 있는 모든 파일이 저장됨 

<예시 3 모든 변경사항 쉽게 커밋하기>

$ git add .
# 현재 프로젝트 디렉토리 내에서 변경사항이 생긴 모든 파일들을 staging area에 추가하기 

<예시 4 git add 취소하기>
-그러나 변경된 새모습은 그대로 working directory에 남아있음

$ git reset 파일이름 

Local Repository 내용을 Remote Repository로 보내기

<레포지토리 구분 >
1.깃허브의 Repository
→ 원격 레포지토리 or 리모트 레포지토리
→ 1)복제품을 만들어줘서 안전성 향상 2) 다른 개발자들과 협업 가능하게 함

2.내컴퓨터의 Repository
→ 로컬 레포지토리

<Git hub 올리기>
1.로컬 레포지토리 만들고 커밋 한 후에 깃허브에 업로드 하기

echo "# math_Box" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/SashaGwak/math_Box.git
git push -u origin main

2.이미 만든 로컬 레포지토리를 깃허브에 업로드 하기

git remote add origin https://github.com/SashaGwak/math_Box.git
git branch -M main
git push -u origin main

3.그 이후 업로드

git add 파일
git commit -m "변경 사유"
git push 

Remote Repository 내용을 Local Repository로 보내기

git pull 
# 리모트 레포지토리 내용을 로컬 레포지토리에 반영 
$ cat README.md  # README 파일 내용 출력 
### 수학 계산을 위한 코드를 제공하는 프로젝트
1. calculator.py : 계산기에 있는 기능들을 제공하는 모듈

다른 프로젝트 파일 가져오기

# 부모 디렉토리에서 
git clone 가져올 레포지토리 주소 
# 깃허브 프로젝트의 레포지토리를 그대로 복제 

README.md

보통 README.md 파일에는 프로젝트에 대한 설명, 주요 사용법, 프로그램을 실행시키려면 어떤 사전 작업이 필요한지를 알려주는 내용이 적혀있음
-프로젝트의 메인 화면에 보여주기 때문에 가독성 있게 작성하는 것이 중요
-마크다운 작성법 : https://gist.github.com/ihoneymon/652be052a0727ad59601

profile
코린이의 개발공부

0개의 댓글