Category: Python/Django

django admin 페이지에서 다른 모델의 필드값을 drop-down 리스트로 사용하기.

Django 관리자 페이지에서 다른 모델 필드값 drop-down list로 사용하기 모델은 아래와 같다.

위의 모델에서, NetworkDevice 모델의 category 필드의 입력값을 Category 모델의 값에서 가져오기를 원하는경우, ForeignKey를 사용하면 되지만, 외래키를 사용하는경우 Category 쪽의 데이타를 삭제하는 경우 문제가 발생할 수도 있다. 그런 경우를 비롯해 외래키를 사용하지 않고 비슷한 효과를 보려면, 모델이 choices 파라메터를 튜플 타입으로 지정하면 된다. …

Continue reading

Nornir 네트워크 자동화 – 4 (nornir-napalm)

Nonir 네트워크 자동화 – 4 (nornir-napalm) 1. NAPALM NAPALM(Network Automation and Programmability Abstraction Layer with Multivendor support) NAPALM은 통합된 API를 사용하여 다양한 네트워크 장비의 OS와 상호작용하는 기능을 구현한 파이썬 라이브러리. 현재 버전(napalm 3)에서 지원하는 NOS는 Arista EOS, Cisco IOS, Cisco IOS-XR, Cisco NX-OS, Juniper JunOS이다. * NAPALM의 단점 지원되는 OS가 적다(하지만 지원되지 않는 장비들에 대한 …

Continue reading

Nornir 네트워크 자동화 – 3 (활용편)

Nornir 네트워크 자동화 – 3 (활용편) 이전 글(Nornir 네트워크 자동화 -2 (활용편))에서 nornir-netmiko 를 통해 시스코스위치에 명령을 내리고 결과를 가져오는 파이썬 스크립트를 작성했다. 이제, 남은것은 가져온 결과에서 원하는 부분을 추출하여 excel 에 저장하는 것이다. 만약, 결과를 눈으로 확인하기만 하면 된다고하면 print_result 사용만으로 충분할 수도 있겠지만, 장비의 시리얼 번호 추출이나 os 버전을 업그레이드 하기 위해 현재 …

Continue reading

Nornir 네트워크 자동화 -2 (활용편)

Nornir 네트워크 자동화 – 2 활용편 목표: Nornir를 이용하여 시스코 스위치 점검하는 파이썬 스크립트를 작성 사람이 장비점검을 한다고 하면 보통 아래 과정을 거쳐야한다. 1. 스위치의 목록 확인(ID, 비밀번호, 접속방법 등등) 2. 장비 접속, 보통 순서대로 접속하지만, 터미널 프로그램에 등록해서 한번에 여러대 접속이 가능하다. 3. 장비별로 명령을 내린다. 이것 역시 순서대로 하거나 여러 장비에 동시 가능. …

Continue reading

Nornir 네트워크 자동화 – 1

Nornir 네트워크 자동화 – 1 (기초편) 1. Nornir란 무엇인가? Nornir는 파이썬으로 작성된 자동화 프레임워크다. Ansible의 경우 파이썬으로 작성되었지만 프로그래밍을 몰라도 사용하는데 문제는 없지만, Nornir를 사용하려면 파이썬 프로그래밍을 알아야한다. Nornir는 파이썬 버전 3.6.2 이상에서 동작한다. 2. Nornir 설치 Nornir는 PyPI에 게시되며, 다른 파이썬 패키지들처럼 pip 명령으로 설치가 가능하다. 또한 개발단계에서는 virtual environment를 사용하는것이 좋다. 아래 명령으로 …

Continue reading

ip 주소를 숫자로 바꾸기 – python ipaddress 모듈.

ip 주소 정렬 문제 ip 주소를 정렬하려고 하면 자릿 수 때문에 원하는 결과가 나오지 않는다. 172.16.10.10 172.16.1.100 172.16.1.1 172.16.1.9 172.16.1.11 172.16.11.100 172.26.11.10 이 내용을 엑셀을 이용하여(또는 리눅스 sort 명령을 이용하여) 정렬하면, 172.16.1.1 172.16.1.100 172.16.1.11 172.16.1.9 172.16.10.10 172.16.11.100 172.26.11.10 처럼, 원하는 결과가 나오지 않는다.

Continue reading

django Mongodb connector 설정하기

Django mongodb connector 설정하기 참고문서: https://nesdis.github.io/djongo/get-started/ 사전작업: mongodb 설치, django3.1 설치. 1. django-mongodb connector(djongo) 설치. pip 로 django를 설치하면 아래처럼 몇몇 패키지들은 제거되고 django3.0.5가 설치된다. django 3.1버전이 지원되지 않아서 그런듯 하다.

Continue reading

Python Tibero odbc

현 시점에, Django가 티베로 odbc를 지원하지 않기때문에, 프로그래밍할때 ORM 사용은 불가능하다. 때문에, 아래와 같은 클래스를 만들어서 사용했다. 티베로 ODBC설정은 Ubuntu+Tibero+Python3+ODBC 연결하기를 참고하면 된다. insert, delete 문은 execute 메소드를 사용하면되며, 결과값이 있는 쿼리는 query나 fetchone, fetchall 메소드를 사용하면된다. 윈도우 환경에서는 setdecoding 관련 부분이 필요 없지만, 리눅스 환경에서는 꼭 필요하다.

Django 다국어 사용

django 3.1 다국어 사용 * 확인사항: django에서 다국어지원을 위해서는 os에 gettext가 설치되어 있어야 한다. django에서 다국어 지원을 위해 settings.py에 아래 내용을 추가해야 한다.

Continue reading

Ubuntu+Tibero+Python3+ODBC 연결하기

Ubuntu 18.04에서 python3과 tibero 데이타베이스 연동하기 Tibero는 python 드라이버를 지원하지 않으므로, ODBC를 통해서 연결해야한다. 우분투리눅스에 ODBC를 아래 명령어로 설치한다.

tibero odbc 드라이버를 설치하려면 tibero client를 설치해야하지만, 티베로 데이타베이스서버에서 아래 파일만 복사하여 사용할 수도 있다. 여기서는 tibero 서버에서 libtbodbc.so 파일을 가져와서 /home/tibero/client/ 에 설치했다.

Continue reading