[Django Recipe] 디자인 부담을 덜어주는 django-adminlte3 – part 3

django-adminlte3 – part 3

django-adminlte3와 django-mptt로 사이드바 tree 메뉴 만들기

django-mptt 설치와 설정은 django-mptt로 tree구조 만들기(https://blog.boxcorea.com/wp/archives/2605)를 참고하면 된다.

관리자페이지에서 아래와같은 tree구조를 만들었고, 이것을 사이드바에 tree 구조로 보이도록 view를 만들어본다.

project/app/urls.py에 url을 등록한다.

urlpatterns = [
    path('category', CategoryView.as_view(), name='category'),
    path('test/', TestView.as_view(), name='test'),
]

project/app/views.py 에 아래와 같이 view를 만든다.

class CategoryView(View):
    template_name = 'chaser/category.html'

    def get(self, request):
        context = {
            'categories': Category.objects.all(),
        }
        return render(request, self.template_name, context)

Continue reading

[Django Recipe] 디자인 부담을 덜어주는 django-adminlte3 part-2

웹 디자인 부담을 덜어주는 django-adminlte3 part-2

base.html 살펴보기.

base.html 아래 링크를 참고하여 템플릿에서 사용할 수 있는 블럭의 이름을 알 수 있다.
https://github.com/d-demirci/django-adminlte3/blob/master/adminlte3/templates/adminlte/base.html

먼저, 간단히 사이트 이름과 페이지 제목을 변경하고 싶다면, block title_outer를 설정한다.

project/templates/index.html 에 title을 설정하면 index.html을 상속받는 모든 페이지에 적용되며, test.html에 설정하면 test.html을 사용하는 페이지에만 적용된다.

index.html에 적용하는 경우

{% extends 'adminlte/base.html' %}
{% block title_outer %}
<title>{% block title %}Chaser{%endblock %}</title>
{% endblock %}

test.html에도 적용된다.

{% extends '../index.html' %}
{% block content %}
test page...
{% endblock %}

이제 http://localhost:8000/test 에 접속하면 페이지 제목이 보인다.

Continue reading

[Django Recipe] 웹 디자인 부담을 덜어주는 django-adminlte3 – part 1

웹 디자인 부담을 덜어주는 django-adminlte3 – 1부

adminlte는 다양한 기능을 제공하는 웹템플릿으로 많은 개발자들이 사용한다. 다양한 기능을 편리하게 사용할 수있는 장점이 있으나, 많은 개발자들이 사용하므로 디자인이 비슷하다는 단점이 있다.
adminlte는 현재 버전3 까지 나와 있다.

* 작업환경
python: 3.6
django: 3.0
os: windows 10

1. 설치 및 설정

설치

pip install django-adminlte3

설정
django project 의 settings.py에 app을 등록한다.
이때, 순서가 중요하다. adminlte3 이 adminlte3_theme보다 먼저와야 하며, 이 두 app은 django.contrib.admin 이 전에 설정해야한다.

INSTALLED_APPS = [
    # installed 3rd party app
    'adminlte3',
    'adminlte3_theme',

    # 아래부터는 django 기본 설정 app
    'django.contrib.admin',
    'django.contrib.auth',
    ....
]

manage.py collectstatic 명령을 내리면, static 디렉토리에 필요한 파일들이 복사된다.

manage.py collectstatic

Continue reading

Extreme 스위치 시간 설정

Extreme 스위치  시간 설정하기(EXOS 시간 설정)

1. 현재 시간 확인

show switch 명령을 내리면 여러가지 정보가 보여지는데, 현재 시간은 current time 항목을 확인하면 된다.

Switch.1 # show switch

SysName:          Switch
SysLocation:      
SysContact:       support@extremenetworks.com, +1 888 257 3000
System MAC:       00:04:96:51:A9:D5
System Type:      X450e-24p

SysHealth check:  Enabled (Normal)
Recovery Mode:    All
System Watchdog:  Enabled

Current Time:     Tue Mar  3 16:12:35 2020
Timezone:         [Auto DST Disabled] GMT Offset: 540 minutes, name is KST.
Boot Time:        Wed Aug 24 13:55:31 2016
Boot Count:       23
Next Reboot:      None scheduled
System UpTime:    1287 days 2 hours 17 minutes 4 seconds 

Current State:    OPERATIONAL             
Image Selected:   primary                 
Image Booted:     secondary               
Primary ver:      15.3.5.2                
Secondary ver:    15.3.5.2    
                  patch1-10

Config Selected:  primary.cfg                                          
Config Booted:    primary.cfg                                          

primary.cfg       Created by ExtremeXOS version 15.3.5.2
                  145375 bytes saved on Fri Dec 13 14:32:05 2019

Continue reading

nvidia GPU 스트레스 테스트

리눅스 nvidia gpu 스트레스 테스트.

1. 테스트환경
OS: CentOS 7
GPU : Nvidia Tesla V100-SXM2 x 4
CPU: Intel(R) Xeon(R) Gold 6242 CPU @ 2.80GHz
GPU tools: cuda toolkit

2. gpu burn 다운로드
http://wili.cc/blog/gpu-burn.html 에서 아래 파일을 다운로드 받는다.

http://wili.cc/blog/entries/gpu-burn/gpu_burn-1.0.tar.gz

# curl -O http://wili.cc/blog/entries/gpu-burn/gpu_burn-1.0.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7289  100  7289    0     0   4666      0  0:00:01  0:00:01 --:--:--  4669

Continue reading

web dns query

커맨드라인에서 nslookup 이나 dig를 이용해 dns 쿼리를 가끔 이용하는데, pc를 이용할 수 없는 상황이 생김.

그래서, iPhone web 브라우저에서 dns 쿼리를 가능하게 하도록 프로그램 작성함.(https://webdns.boxcorea.com)

Continue reading

MacOS Catalina 업그레이드 후 32bit app 삭제하기.

MacOS Catalina 부터는 32bit App은 실행되지 않는다. 업그레이드 후에 사용할 수 없는 어플리케이션의 아이콘은 아래 그림처럼 금지(?) 표시가 된다.

Continue reading

리눅스 ss 명령어로 network session 강제 종료하기

리눅스 ss 명령어로 network session 강제 종료하기

 

리눅스에서는 netstat 명령어로 현재 네트워크 세션을 확인 가능하다.

현재 tcp 세션을 확인하려면 아래와 같이 -t 옵션을 주면 된다.

snowfox@fox:~$ netstat -nt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 192.168.100.122:22      192.168.100.121:13502   ESTABLISHED
tcp        0     36 192.168.100.122:22      192.168.100.121:13500   ESTABLISHED
tcp        0      0 192.168.100.122:52218   192.168.216.133:2511    ESTABLISHED

Continue reading

윈도우 10 재 부팅 후에 고정 IP 주소가 APIPA로 바뀌는 현상.

윈도우 10 재 부팅 후에 고정 IP 주소가 APIPA로 바뀌는 현상.

* 사용환경
Network: Cisco Switch(c3560)
Client: windows 10 PC, Vmware VM(windows 10)
Client IP address: Static IP address (고정 IP 주소) 사용.

* 오류 사항.
시스코 스위치에 연결된 윈도우 클라이언트들이 ip 주소가 설정되어 있음에도 불구하고 재부팅 후에 IP 주소가 APIPA로 (ipconfig 명령어로 확인) 바뀌며 통신이 안되는 현상이 발생함.
여기서, APIPA(Automatic Private IP Addressing)는 DHCP 서버로 부터 IP 주소를 할당받지 못하는경우 클라이언트 스스로 설정되는 IP 주소로 169.254.0.1 ~ 169.254.255.254의 범위를 가진다.

* 원인
이 문제의 원인은 Gratuitous Arp 이슈.

이런 현상이 발생할 경우 해결방안은 두 가지가 있다.

첫 번째는 윈도우즈 설정에서 APIPA를 사용하지 않도록 하는 방법이 있으나 연결된 PC들이 많은경우에 일일이 설정해야하는 불편함이 있다.

MS 윈도우에서 APIPA를 사용하지 않도록 하는 방법에는 레지스트리를 수정하는 방법과, netsh 명령어를 이용하는 방법이 있으며, 이 문서를 참고하면 된다.

netsh 명령어는 아래와 같다.

netsh interface ipv4 set interface 11 dadtransmits=0 store=persistent

Continue reading

CentOS 8, ip 주소 설정/변경

CentOS 8 network 설정/변경하기

이전 버전과 설정파일의 위치는 /etc/sysconfig/network-scripts/ 디렉토리아래에 ifcfg-[인터페이스이름] 으로 동일하다.

dhcp로 되어 있는것을 고정 IP 주소로 바꾸기 위해서 아래 파일을 수정한다.

# cd /etc/sysconfig/network-scripts/
# ls
ifcfg-enp0s3

인터페이스 이름이 enp0s3이며, 파의 내용을 변경하거나 없는 내용은 추가한다.

# vi ifcfg-enp0s3
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.35
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8

Continue reading