рдЬрдм Django рдХрдВрдЯреЗрдирд░ рдбреЙрдХрд░ рдореЗрдВ рдХрдИ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреБрдХреАрдХрдЯрд░-рдбреАрдЬреЗрдВрдЧреЛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ SO рдкреЛрд╕реНрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛):
import socket
ip = socket.gethostbyname(socket.gethostname())
INTERNAL_IPS = ['127.0.0.1', ip[:-1] + '1']
рдорд╛рдИ рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдЗрдЯрдо рд╣реИрдВ:
networks:
web_network: {}
cache_network: {}
database_network: {}
services:
djangoapp:
networks:
- database_network
- web_network
- cache_network
рдЕрдм ip = socket.gethostbyname(socket.gethostname())
рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ IP рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрд▓рдмреНрдз рдиреЗрдЯрд╡рд░реНрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЖрдИрдкреА рд╣реИ (рдпрджрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ)ред рддреЛ рдХрднреА-рдХрднреА рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдореИрдВрдиреЗ socket
рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдПрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЖрдИрдкреА рдЬреЛрдбрд╝рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛, рдЬреИрд╕реЗ рдХреБрдЫ:
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 рдбреАрдмрдЧ рдЯреВрд▓рдмрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдХреНрдпрд╛ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдореИрдВ рдпрд╣ рдХрд░рддрд╛ рд╣реВрдВ:
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
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдФрд░ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдореЗрд░рд╛ рдЬрд╡рд╛рдм рдорд┐рд▓ рдЧрдпрд╛: рдмрдВрдж рдХрд░рдирд╛: рдереЛрдбрд╝рд╛_рд╕реНрдорд╛рдЗрд▓рд┐рдВрдЧ_рдлреЗрд╕:
рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 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
ред рдмреЗрд╢рдХ рдкреНрд░реЛрдбрдХреНрд╢рди рд╣реЛрд╕реНрдЯ рдкрд░ рдРрд╕рд╛ рдХрднреА рди рдХрд░реЗрдВ!