cookiecutter-djangoμ μ¬μ©λ μ루μ μ Django 컨ν μ΄λκ° Dockerμ μ¬λ¬ λ€νΈμν¬μ μ°κ²°λ κ²½μ° μλνμ§ μμ΅λλ€. μ루μ μ λ€μκ³Ό κ°μ΅λλ€(μ΄ SO κ²μλ¬Ό μμ
import socket
ip = socket.gethostbyname(socket.gethostname())
INTERNAL_IPS = ['127.0.0.1', ip[:-1] + '1']
λ΄ Docker Compose ꡬμ±μλ λ€μ νλͺ©μ΄ μμ΅λλ€.
networks:
web_network: {}
cache_network: {}
database_network: {}
services:
djangoapp:
networks:
- database_network
- web_network
- cache_network
μ΄μ ip = socket.gethostbyname(socket.gethostname())
λ°νλ IPκ° νμ κ°μ§λ μμ΅λλ€. μ¬μ© κ°λ₯ν λ€λ₯Έ λ€νΈμν¬ μ€ νλμ IPμΈ κ² κ°μ΅λλ€(μ΄ν΄νλ κ²½μ°). λ°λΌμ λλλ‘ μλνμ§λ§ λλΆλΆμ κ²½μ° μλνμ§ μμ΅λλ€.
λ€μκ³Ό κ°μ΄ socket
μμ λ°νλ IPλ₯Ό κΈ°λ°μΌλ‘ κ°λ₯ν λͺ¨λ IPλ₯Ό μΆκ°νμ΅λλ€.
def internal_docker_ips(base_ip):
numbers = base_ip.split('.')
return [
'.'.join([numbers[0], str(i), numbers[2], str(j)])
for i in range(1, 254) for j in (1, 3) # all IPs ending with '.1' and '.3'
]
INTERNAL_IPS = [
'127.0.0.1',
]
INTERNAL_IPS.extend(
internal_docker_ips(
socket.gethostbyname(
socket.gethostname())))
# ['127.0.0.1', '172.1.0.1', '172.1.0.3', '172.2.0.1', '172.2.0.3', ..., '172.253.0.1', '172.253.0.3']
μ΄μ λν λ κΉ¨λν ν΄κ²° λ°©λ²μ΄ μμ΅λκΉ? κ°μ λ¬Έμ κ° μμΌμ ¨λ λΆ κ³μ κ°μ? Django Debug Toolbar μ체μ κ΄λ ¨μ΄ μμ μλ μμ§λ§ λμμ μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€. λ€λ₯Έ μ¬λλ€μκ² μ μ©ν κ²μ λλ€.
μ΄κ²μ΄ μ κ°νλ κ²μ λλ€:
if DEBUG:
# `debug` is only True in templates if the vistor IP is in INTERNAL_IPS.
INTERNAL_IPS = type(str('c'), (), {'__contains__': lambda *a: True})()
λͺ¨λ κ²μ ν¬ν¨νλ κ°μ²΄λ₯Ό INTERNAL_IPS
ν λΉνκΈ° μ λ μ΄ μμ
μ μν
μ리ν! μΈκΈλ SO κ²μλ¬Όμ μ΄ λ΅λ³μ μΆκ°νλ κ²μ κ³ λ €ν΄μΌ ν©λλ€! λλ νμ€ν κ·Έκ²μ μ°¬μ± ν κ²μ λλ€ : μ€λ§μΌ :
μ¬κΈ°μ μΆκ°νμ΅λλ€ :) https://stackoverflow.com/a/49818040/317346
μ΄ λ¬Έμ μ λ μ΄μ κ΄μ¬μ΄ μλ κ² κ°κ³ λ΄ λλ΅μ λ€μκ³Ό κ°μ΅λλ€. λ«κΈ° :slightly_smiling_face:
μ λλ£ μ€ ν λͺ
μ΄ μ΄λ₯Ό μν΄ λ€λ₯Έ μ루μ
μ μ¬μ©ν©λλ€. μ€μ λ‘ django-debug-toolbarλ SHOW_TOOLBAR_CALLBACK
λΌλ κ΅¬μ± μ€μ μ μ 곡ν©λλ€.
DEBUG_TOOLBAR_CONFIG = {
'SHOW_TOOLBAR_CALLBACK': lambda request: True,
}
# or
DEBUG_TOOLBAR_CONFIG = {
'SHOW_TOOLBAR_CALLBACK': lambda request: True if DEBUG else False,
}
κ°μ₯ μ μ©ν λκΈ
μ΄κ²μ΄ μ κ°νλ κ²μ λλ€:
λͺ¨λ κ²μ ν¬ν¨νλ κ°μ²΄λ₯Ό
INTERNAL_IPS
ν λΉνκΈ° μ λ μ΄ μμ μ μν