[django 2.2] Get/Post를 동일한 템플릿에 표시하기.

Django class based view를 이용하여 동일한 페이지에 GET 과 POST를 모두 표시하는 방법.

1. View 작성(app/views.py)

class GetPostView(View):
    template_name = 'getpost.html'
    data = [
        {'name': 'fox', 'title': 'test1', 'is_published': True },
        {'name': 'wolf', 'title': 'test 2', 'is_published': False},
        {'name': 'cat', 'title': 'life of cat', 'is_published': True},
    ]

    def get(self, request, *argc, **kwargs):
        context = {
            'data': self.data,
        }
        return render(request, self.template_name, context)

    def post(self, request, *argc, **kwargs):
        result = request.POST
        context = {
            'data': self.data,
            'result': result,
        }
        return render(request, self.template_name, context)

Continue reading

vmware cluster (6.0)에서 사용자 추가하고 역할 주기

vmware 6.0 클러스터 환경에서 사용자를 추가하기 위해서는 vsphere web client를 이용해야만 한다. vsphere client에서는 관련 메뉴가 보이지 않았다.

1. 웹브라우저를 실행하고, vcenter apppliance에 접속한다.

Continue reading

django2.2 url , url을 text로 유지하는 방법.

django 프로그램을 작성하다 보면, url에 내가원하는 텍스트를 붙여야 하는 경우가 생긴다.

url은 주로 http://some.thing/view/123 이나 http://some.thing/view/wanted_text 이런 형식이 될 것이다.

models.py가 아래와 같을때,

from django.db import models

# Create your models here.
class TestData(models.Model):
    ip = models.GenericIPAddressField()
    mac = models.CharField(max_length=12, default='000000000000')
    date = models.DateTimeField(null=True)
    explane = models.CharField(max_length=64, null=True)

세 개의 view를 작성하고 각각의 템플릿을 작성한다.

Continue reading

django, ORM raw() vs connection

django를 사용하다보면, 복잡한 sql문을 django ORM으로 만들기가 매우 어려운 경우가 발생한다.
이럴 때, sql을 직접 이용하기 위해서 djanco connection을 사용할 수도 있지만, query 결과를 템플릿으로 전달하는데는 django queryset이 더 유리해 보인다.

1. app/models.py 에 아래와 같은 테이블을 만들고 migrate한다.

from django.db import models

# Create your models here.
class TestData(models.Model):
    ip = models.GenericIPAddressField()
    mac = models.CharField(max_length=12, default='000000000000')
    date = models.DateTimeField(null=True)
    explane = models.CharField(max_length=64, null=True)

Continue reading

django-mptt 사용자 view

이전글 django-mptt로 tree 구조 만들기.에 이어 사용자에게 보여주는 페이지에서 tree구조를 보여주려면, view.py에 view 함수와 template을 만들어주어야한다.

먼저, view.py에 아래와 같이 view함수를 만들어준다.

아래처럼, Category 모델을 모두 불러와서 템플릿에 데이타를 보내는 뷰를 작성한다.

from django.shortcuts import render

# Create your views here.
from django.views.generic import View
from .models import Category

class CategoryView(View):
    template_name = 'tracer/category.html'
    def get(self, request):
        context = {'categories': Category.objects.all()}

        return render(request, self.template_name, context)

Continue reading

django 데이타베이스 모델을 외부 스크립트에서 사용하는 방법

django2.4에서 만든 데이타베이스 모델을 외부 스크립트에서 사용하는 방법

작업환경: python3.7, django2.4

디렉토리 구조는 아래와 같다. 프로젝트 디렉토리 내에 util 디렉토리에 백엔드 스크립트를 위치시키고, 이 스크립트가 django 모델에 orm으로 엑세스 하기를 원할때의 설정 방법이다.
sql을 직접 사용하는 방법도 있겠으나, 전체 프로젝트의 일관성을 위해 ORM을 사용하려면 아래와 같은 방법을 사용하면된다.

d:\python_project\myproject\
├─myproject
│  └─settings.py
├─static
│  └─bootstrap-4.3.1
│      ├─css
│      └─js
├─templates
│  └─app
├─app
│  ├─migrations
│  │  
│  └─models.py
└─util
    └─this_script.py

Continue reading

django-mptt로 tree 구조 만들기.

django-mptt, tree 구조를 쉽게(?) 구현하기.

1. 설치

pip install django-mptt

2. 설정하기(project/settings.py)

프로젝트의 settings.py에 아래 내용 추가

INSTALLED_APPS = [

    #3'rd party APP
    'mptt',     #django-mptt,  이부분을 추가해야 한다.

    # below is django default apps...
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

들여쓰기를 조정하고 싶은경우 아래 부분도 추가해줌(settings.py 맨 마지막에)

MPTT_ADMIN_LEVEL_INDENT = 5

Continue reading

CentOS7, TFTP server 설치 사용하기.

CentOS7, TFTP server 설치 사용하기.

작업환경: CentOS 7, firewalld 사용안함, selinux 사용안함.

tftp서버는 xinetd에 의해 제어되기때문에, xinetd도 함께 설치해야한다.

# yum install tftp-server xinetd

xinetd의 tftp 설정확인.(기본 tftp root 디렉토리를 변경하려면, 아래 14번 줄의 /var/lib/tftpboot를 변경하면된다.)

# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = yes
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

Continue reading

Ubuntu 리눅스에 TACACS+ 인증서버 설치하고 시스코 스위치에 적용하기

우분투 리눅스에 TACACS+ 인증서버 설치하기

설치환경:
TACACS+ 설치 : ubuntu 18.04, ip address: 192.168.0.6
Cisco switch: C3550, ip address: 192.168.0.200

1. 작업 환경 확인 및 tacacs plus 설치

리눅스 버전 확인

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic

TACACS+ 설치

$ sudo apt-get install tacacs+

Continue reading

extreme switch OS 업그레이드 – scp 이용 –

SCP를 이용한 익스트림 스위치 OS 업그레이드

이전 tftp 서버를 이용한 exos 업그레이드에 이어, scp를 이용하여 익스트림 스위치 OS를 업그레이드 한다.

ssh 서버: 192.168.0.6
스위치 : 192.168.0.10
exos image file 위치: 192.168.0.6:/home/snowfox/exos/summitX-16.2.5.4-patch1-7.xos

1. ssh를 사용가능하도록 한다.

X440-24p.2 # enable ssh2
WARNING: Generating new server host key
This could take approximately 15 minutes and cannot be canceled.  Continue? (y/N) Yes
Key Generated
Save the config to retain the key after reboot of the switch or restart of the process.

Continue reading