파이썬에서 urls.py
의 path
안의 name
을 지을 때, 가끔 ㅏ다른 앱의 app
랑 name
이 겹칠 때가 있다.
하지만 path
의 name
은 곧 변수명이기 때문에 겹치면 곤란해진다.
그럴 때를 위해서 urls.py
에서 네임 스페이스를 사용하면, 이게 어디 하위에 위치한 url
이름인지를 구분할 수 있다.
# app1/urls.py
urlpatterns = [
path('', views.home, name='home'),
]
# app2/urls.py
urlpatterns = [
path('', views.home, name='home'),
]
이렇게 두 각기 다른 app
의 urls.py
에서 이름이 겹친다고 치자.
이럴 때, 네임 스페이스를 이용하면 훨씬 사용하기 편해진다!!
# app1/urls.py
app_name = app1 # 네임 스페이스 추가
urlpatterns = [
path('', views.home, name='home'),
]
# app2/urls.py
app_name = app2 # 네임 스페이스 추가
urlpatterns = [
path('', views.home, name='home'),
]
이렇게 각 네임 스페이스를 지어주면, views.py
는 물론 html
파일에서도 응용할 수 있다!!
#views.py
def home1(request):
return redirect('app1:home')
def home2(request):
return redirect('app2:home')
이런식으로 '네임 스페이스 : path name'
형태로 작성해주면 된다.
# main.html
<a href="{% url 'app1:home' %}">app1의 메인 화면으로 이동</a><br/>
<a href="{% url 'app2:home' %}">app2의 메인 화면으로 이동</a>
이런식으로, <a>
와 함께 사용할 수 있다.
{% url '네임 스페이스 : path name' %}
의 형태로 작성해주면 된다.
협업을 하면서 fork
를 통해서 github
를 사용하게 될 때, 메인 브랜치의 내용이 변경되게 되면, 그 변경 사항을 어떻게 내 로컬 저장소에 반영해야 될까?
Sync fork
를 누른다.update branch
를 눌러 최신 변경 사항을 반영한다.원본 repo와 sync를 맞춰줬다면 이제 이걸 내 로컬 저장소로 받아와야 한다.
로컬 저장소에서 bash
하는 법은 두 가지가 있는데,
1. 파일 탐색기에서 오른쪽 클릭 -> git bash here
2. vscode에서 새 터미널을 bash
로 열기
인데, 둘다 어짜피 붙여넣는 코드는 똑같으니 편한걸로 하면 된다.
먼저, 저장소가 잘 등록되어있는지 확인해주자.
# 현재 원격 저장소 확인
>>>git remote -v
연결되어 있는 저장소가 따로 없으면, 내 저장소 주소를 복사해와서 fetch 해주자.
# fork 해온 github 저장소와 연결
>>>git fetch <내 원격 저장소(나의 경우 ssh)>
이렇게 뜨면 잘 연결된거다!!
그럼 이제 fetch
를 해주면 된다.
# fetch 해주기 (위에서 해줬음 안해도 됨)
>>>git fetch origin
# 메인 브랜치에 merge 해주기
>>>git merge origin/master(or main)
이러면 잘 받아와진다 !!