반응형

Oracle 설치 완료 후 최초 계정 생성 및 최초 테이블 생성하는 방법에 대해 알아보겠습니다.

 

우선 시작->Oracle_Client->SQLPLUS 를 클릭하여 실행합니다. 

1. DBMS 접속하기

Oracle 설치시 SYSTEM계정의 비밀번호를 1234로 설정해 놓았다고 가정할 때 아래와 같이 입력합니다.

> sqlplus Enter user-name: system Enter password: 1234 
Connected to: Oracle Database 11g Express Edition Release ...

2. 사용자 계정 생성

> create user student identified by 1234; 
User created.

3. student 계정에 권한 주기

student계정에 직접 접속하려면 권한이 없다는 에러가 발생합니다. SYSTEM계정으로 우선 연결하여 권한을 부여해줘야 합니다.

>conn student/1234 
-- 에러. 권한 없음 

> conn system/1234 
-- system계정으로 연결 Connected. 

> GRANT connect, resource TO student; Connected. 
-- system계정으로 student계정에게 connect, resource 권한을 준다 

> conn student/1234 Connected. 
-- 접속성공

4. CREATE로 테이블 생성

CREATE TABLE명령어로 member, Customer 등 테이블을 생성할 수 있습니다.

CREATE TABLE member( 
id NUMBER(5), 
name CHAR(25), 
salary NUMBER(7,2), 
title CHAR(25) default '사원', 
in_date DATE default SYSDATE, 
dept_name CHAR(25) 
);

Table member(가) 생성되었습니다.
CREATE TABLE Customer ( 
sid integer PRIMARY KEY, 
last_name VARCHAR(30), 
first_name VARCHAR(30) 
);

 


이상 간단하게 계정 생성/권한부여/테이블 생성에 대해 알아보았습니다.

 

~~~끝~~~

반응형
반응형

아...힘든 하루네요.

회사에서 쓰는게 oracle 11g 2Release 32bit라서 이걸 모델로 집에서 django랑 연동 테스트 해보려고 삽질을 시작했는데... 오전 9:30분에 시작해서 지금, 오후 10:00에서야 드디어 완성했습니다. 그것도 완전한 완성이라고 볼 순 없고 부분적으로 모자란 부분이 있습니다.

 

오늘 최종적으로 성공한 각 프로그램/모듈의 버전은 아래와 같습니다.

  oracle 11g 2Release 64bit

  Python 3.6.1 64bit

  Django 1.11.22

  cx_Oracle 6.3

 

32비트고 뭐고 왔다갔다 하느라 정신없어서..64비트로 우선 통일!

안되는 영어로 계속 뒤져보니까 요즘나오는 Django 3.0이나 2.X대 버전은 oracle 11g를 지원을 안한다고 합니다. 가능한 버전이 Django 1.11.XX대 버전이라고 합니다. 문제는 얘도 Python 버전을 가리는데..최신 3.8은 안되고 2.7 ~ 3.6 까지만 된다네요.... 버전맞추기 참 힘듭니다. cx_Oracle은 나중에 알아보니 그냥 최신 깔아도 될 것 같습니다. 여기까진 그냥 고생한 내용이고..

현재는 버전에 크게 상관없이 잘 구동이 됩니다.

 

Django와 Oracle 연동하는 방법을 알아보겠습니다. 피곤해서 캡쳐는 생략하겠습니다. (나중에 시간나면 업뎃하는걸로..)

 

1. 버전 확인. 오라클과 연동할 때 같은 32bit 또는 64bit인지 꼭 확인합니다.

=> 64bit를 기본으로 깔면 32bit와 연동할 때에도 큰 문제없이 가능합니다.

 

2. oracle 11g와 연동할 django 1.11.22버전 설치합니다.

  - pip install django~=1.11.22

(특정 버전을 골라 설치하려면 이렇게 해도 되지만, Django 3.0부터는 ASGI를 지원하므로, 굳이 구버전을 설치할 필요는 없습니다.)

 

3. DB연동을 위한 cx_Oracle을 설치합니다.

  - pip install cx_Oracle

 

4. 프로젝트 생성

  - django-admin startproject mysite (새로 생성되는 mysite폴더에 manage.py가 생성됩니다. 귀찮아짐..)

  - django-admin startproject mysite . (마지막에 . 을 찍어주면 현재 폴더에 manage.py가 생성됩니다.)

 

5. 앱 생성

  - python manage.py startapp polls

 

6. Database 접속정보 수정

 

 

 

7. inspectdb를 이용하여 models.py생성

  - python manage.py inspectdb test>polls/models.py

  - error발생 가능: TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

  - Django 버전을 꼭 확인하시기 바랍니다. Django 2.0이상 버전은 oracle11g와 안맞는다네요...가끔 했다는 분들도 계신데, 그냥 고수이신걸로...ㅠㅜ

 

8. python manage.py migrate --fake-initial (기존 Oracle 데이터가 있을 경우 불요)

  - error발생 가능: django.db.utils.DatabaseError: ORA-00955: name is already used by an existing object

  - 최초 migration한 파일이 남아있을 수 있으니 지우고 다시

    python manage.py makemigrations 와

    python manage.py migrate --fake-initial 수행하고 진행하시기 바랍니다.

  - Database 테이블이 초기화 상태이어야 합니다. 데이터가 있으면 이 에러메시지가 발생합니다. 좀 이상한데,, 데이터가 존재하는 경우 연동을 어떻게 시키는지 아시는 분께서 답글좀 달아주시면 정말 감사하겠습니다.

 

오전 9시30분부터 시작해서 저녁 10:00 완료하기까지 알아낸 것 치고는 별거 없네요...

Python, Django, Oracle 버전 맞춘다고 지웠다 깔았다 계속하고, 특히 오라클 지우고 3번 다시 까느라 시간 다 보내고,

Django가 쉽다는데.....너무 어렵게 시작하는 것 같은...

 

 

 

그럼 이만~

 

(ps) 2020.06.03: 기존 오라클의 데이터가 있을 경우 makemigrations와 migrate는 없어야합니다. DB정보만 잘 입력해주면, 그리고 inspectdb만 잘 끌어오면 기존 데이터는 접근 가능합니다.

 

(ps) 2021.11.19: 특정 테이블만 가져오기

# python manage.py inspectdb --database=디비명 테이블명1 테이블명2 > 폴더이름/models.py 

python manage.py inspectdb --database=default TEMP TEMP2 > ./models/models.py

 

반응형
반응형

회사에서 쓰는 windows server2012에서 장고를 실행하려고 알아본 내용을 남깁니다.

 

1. Static 파일을 위한 '가상 디렉터리 추가'

(Django_ex)장고 사이트를 우클릭한 뒤 가상 디렉터리 추가를 클릭해줍니다.

 

2. 별칭과 실제 경로를 적어줍니다.

3. 핸들러 위치 조정: Django_ex(장고 사이트) -> 처리기 매핑 ->정렬된 목록보기

StaticFile을 가장 위로 옮겨줍니다. 아래쪽에 있는 핸들러는 위쪽 핸들러로부터 상속을 받기 때문에, 아래쪽에 있으면 제대로 작동이 안됩니다.

왼쪽에서 사이트 클릭 후 가운데 화면에서 '처리기 매핑' 선택 클릭
화면 기본 설정은 이름 알파벳 순으로 되어있음. 오른쪽에서 '정렬된 목록보기' 클릭

 

실행 우선순위로 정렬된 모습. StaticFile을 최상위로 올려준다.(우측 위/아래 이동버튼 이용)

(ps) 외부 포트연결이 설정이 안되어있을 경우 여전히 사이트가 접속 안될 수 있습니다. 포트가 제대로 개방되어있는지 확인하시기 바랍니다. (이전 포스트 참조^^)

 

(끝)

 

반응형
반응형

Django에 CSS를 적용하는 방법은 어렵지 않은데... 적용하려면 저같은 초보한테는 쉽지않네요. 

우선 기록으로 남겨놓습니다.

 

1. mysite/setting.py의 STATIC정보를 수정/확인합니다.

STATIC_URL = '/static/'
STATICFILES_DIRS = ( os.path.join('static'), )

2. CSS파일 생성(style.css)하여 아래 경로에 위치시킵니다.

mysite/static/css/style.css

li a {

    color: green;

}

3. HTML에 static file 로딩부분을 추가해줍니다.

{% load static %}   # 버전에 따라 staticfiles
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="{% static 'css/style.css' %}" />
    <title>Title</title>
</head>

 

~~끝~~

 

(ps)

각 앱별로 static파일을 정의해놓았을 경우, STATICFILES_DIR 대신

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

를 설정하고,

python manage.py collectstatic 명령어를 주어 /static/폴더내로 복사해주면 적용됨.

 
 
반응형
반응형

 

Windows server 2012 IIS환경에서 Django를 연동하는게 쉽지가 않아서 한번 정리해 놓습니다. Django로 직접 서버를 돌릴 수도 있으나, 보안 및 성능상의 문제로 인해 권하지 않는 방법이라고 합니다. 그래서 apache나 nginx등 웹서버와 연동해서 많이 사용하는데요... 저희 회사 환경이 Windows 서버라 IIS 와의 연동이 필요한 상황입니다.

 

1. pip install wfastcgi

Django와 연동을 위해 wfastcgi를 설치합니다.

 

2. IIS FastCGI 설정

IIS에서 Django에 CGI요청을 전달하기 위해 설정을 해야합니다

 

1) FastCGI 설정

 서버 관리자를 실행시키고, 왼쪽 탐색창에서 서버가 선택된 상태로 FastCGI설정을 클릭합니다.

 

2) 응용프로그램 추가

 우측 작업에서 응용프로그램 추가를 클릭합니다. 이는 FastCGI 응용프로그램을 추가합니다. IIS - FastCGI - Django 가 연결될 수 있게 중간다리 역할을 하는 프로그램 설정이라고 생각하면 됩니다.

 

환경 변수에 3가지 값을 입력한다.

1. Name: DJANGO_SETTINGS_MODULE, Value: ex1.settings (앱 이름.settings)

2. Name: PYTHONPATH,                     Value: D:\django_ex\ex1 (앱 까지의 경로)

3. Name: WSGI_HANDLER,                  Valeu: django.core.wsgi.get_wsgi_application() (고정 값)

 

 

설정 추가된 모습

 

3. 웹페이지 생성

 왼쪽 탐색창의 저장소가 선택되 상태에서 우측 작업 아래에 웹페이지 생성을 클릭합니다. 사이트 이름을 입력하고, 실제 경로로 장고 앱의 위치를 입력합니다. 포트는 장고 기본 설정인 8000으로 했습니다.

 

4. IIS 핸들러 설정 (처리기 매핑)

IIS가 FastCGI를 찾아갈 수 있도록 처리기 매핑을 해야합니다.

 

1) 처리기 매핑 선택

 

2) 화면 우측 작업의 ㅎ위메뉴 모듈 매핑 추가 클릭

 

 

요청경로: *

모듈: FastCgiModule

실행파일(옵션): D:\99_wij_test\django_ex\venv\Scripts\python.exe|D:\99_wij_test\django_ex\venv\Lib\site-packages\wfastcgi.py

이름: Django_Handler

 

요청제한: 매핑 - "요청이 다음에 매핑되는 경우에만 처리기 호출" 을 언체크 합니다.

 

 

응용프로그램 만드는 것은 "아니오" 선택.

 

5. 포트 오픈

이렇게까지 했으면 8000번 포트에서 서비스를 하게 됩니다. localhost:8000 입력시 django 시작 화면이 보일 것입니다. 그러나 외부로 해당 포트를 open하지 않았으면 외부에서 접근이 불가능합니다. 특정 포트 오픈하는 방법에 대해서는 이전 포스트를 참고하시기 바랍니다.

 

포트까지 오픈이 되었다면, 외부에서도 접근이 가능해집니다.

끝~

반응형
반응형

 

 python-django니 golang이니 공부하다가 회사 테스트서버에서 연동해보려고 하니, 80번 포트 외에는 구동이 안되더군요. 이리저리 알아보니, 사용할 포트를 열어주어야 합니다. 그것도 모르고 한참을 또 삽질을 했네요.

1. 제어판-방화벽 설정으로 들어갑니다.

2.고급설정으로 들어가서 인바운드 규칙을 클릭합니다.

 

3.화면 우측 작업 아래에 새 규칙을 클릭합니다. 메뉴가 나오면 포트를 고르고...

4.TCP, 특정 로컬 포트 선택(예:8000..장고 기본설정)

 5.연결허용

6. Next

7. 규칙 이름 및 설명을 적고 마침

8.등록 완료확인

 
이상으로 IIS에서 특정 포트 오픈하는 방법에 대해 알아보았습니다. 끝~~~

 

반응형

'ETC' 카테고리의 다른 글

태블로 Radial Pie Gage 차트  (0) 2020.08.11
Github SSH 연결 사이트  (0) 2020.07.13
Oracle vm virtualbox NAT네트워크로 인터넷 연결  (6) 2020.04.10
GIMP로 초간단 투명 배경 만들기  (3) 2020.03.30
첫글  (0) 2020.01.29
반응형

Django 설치를 위해서는 whl 파일을 내려받아서 설치해야 하는데, https://pypi.org/사이트에서 파일들을 내려받아 설치할 수 있습니다.

 

우선 현재 시점으로 www.Django-3.0.6-py3-none-any.whl 버전을 설치하려고 하는데 아래와 같이 관련 패키지들을 추가 설치했습니다.

1. www.pytz-2020.1-py2.py3-none-any.whl

2. www.sqlparse-0.3.1-py2.py3-none-any.whl

3. www.asgiref-3.2.7-py2.py3-none-any.whl

 

한 폴더에 whl 파일들을 넣고 

pip install xxx.whl

을 실행해주면 관련 패키지들이 설치됩니다. 그리고 최종적으로 Django 패키지를 설치하면 됩니다.

 

반응형
반응형

아직 웹앱 / 웹서버 / API 이런 개념이 없긴 하지만, 회사의 웹 환경은 뭔가 기초가 되는 웹서버가 있고 앱들이 그 위에서 돌아가고 있기 때문에, 오늘은 go 웹앱과 nginx를 연동하는 방법에 대해 알아볼까 합니다.

 

1. go 앱 작성

아래와 같이 간단한 코드를 작성하고 빌드해서 exe파일을 만들어 줍니다.

// main.go
package main

import (
	"fmt"
	"net/http"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "Hello World")
	})

	http.HandleFunc("/greet/", func(w http.ResponseWriter, r *http.Request) {
		name := r.URL.Path[len("/greet/"):]
		fmt.Fprintf(w, "Hello %s\n", name)
	})

	http.ListenAndServe(":9990", nil)

}

그리고 exe파일을 실행해줍니다. 브라우저로 포트 9990에 접속하면 아래와 같이 나옵니다.

간단하게 웹앱이 만들어졌습니다.

 

2. NginX 설치

저는 NginX 사이트를 들어갔었는데, 다운받는 경로를 찾기가 힘들더군요. 다운로드로 검색해서 들어갔습니다. 참고로 이곳 링크를 따라가시면 됩니다. 압축 파일이 다운받아지는데, 설치하는 프로그램이 아니고 곧바로 실행가능한 파일입니다. 따라서 "C:\" 나 "C:\Program Files\" 등 적당한 곳에 옮겨줍니다.

 

 

3. NginX 실행

저는 C:\ 바로 밑에 설치했는데요, 해당 폴더의 nginx.exe 파일을 실행하시면 nginx 서버가 실행됩니다.

그리고 브라우저를 통해서 localhost에 접속하면

nginx에 온걸 환영한다고...이렇게 나옵니다.

 

4. nginx.conf 파일 수정 및 재실행

nginx 설치 폴더의 conf폴더 내 nginx.conf 파일을 수정하여 server 부분에 아래의 코드만 남기고 제거합니다. 이렇게 해서 localhost:80으로 접근하면 자동으로 localhost:9990으로 연결되도록 합니다.

 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://127.0.0.1:9990;  # 변경된 부분
            #root   html;
            #index  index.html index.htm;
        }

        #error_page  404              /404.html;

그리고 커맨드창에서(path 추가 안했다면, 설치폴더 경로로 이동) nginx -s reload 명령으로 재시작합니다.

 

5. localhost 확인

이번엔 localhost:80으로 다시 접속합니다. 그러면 go로 만든 앱의 결과물이 나타나는 것을 확인할 수 있습니다.

6. 기타

아래 ubuntu환경에서 go 웹앱을 nginx와 연동하는 방법에 대한 포스팅을 참조했습니다만, 그 중 systemd unit file 작성하는 부분을 누락했습니다. 왜하는지도 모르겠고, 어떻게 하는지도 모르겠네요. 아시는 분께서는 댓글 부탁드려요. 사실 이것 뿐만 아니라, 애초에 그냥 go 웹앱만 여러개 만들어서 돌리면 되는것 아닌가요? 굳이 apache나 nginx같은 웹서버랑 연동을 해야하는 걸까요? 취미로 혼자 공부하다보니 힘드네요. 누가 좀 알려주세요~~^^;;;;;

 

참고사이트

https://www.digitalocean.com/community/tutorials/how-to-deploy-a-go-web-application-using-nginx-on-ubuntu-18-04

반응형

+ Recent posts