728x90
반응형

전자정부 프레임워크 설치

 

JDK 설치 (OpenJdk11) 

  • JAVA 환경 설정 
  • 윈도우 버튼 우클릭 ->시스템 클릭 -> 시스템 정보 클릭 -> 고급 시스템 설정 

  • JAVA_HOME 환경 변수 등록 

 

  • Path 등록 

  • cmd 창에서 JAVA 버전 확인 

 

전자정부 프레임워크 실행

 

전자 정부 이클립스 실행

다운로드 받은 파일을 실행 하면 eGovFrame 디렉토리에  이클립스 디렉토리가 생성 된다. 

원하는 workspace 를 선택하고 이클립스를 실행 한다. 

전자 정부 simple homepage 프로젝트 생성 

simple homepage 프로젝트 구조 확인

 

DB Connection 설정 

연결정보 수정 

  • globals.properties 파일 수정 
  • C:\eGovFrame\eGovFrameDev-4.0.0-64bit\workspace\egovFrame-simpleHomepage\src\main\resources\egovframework\egovProps\globals.properties

사용하고자 하는 DataBase 는 Tibero 로 설정 하였다.

# 운영서버 타입(WINDOWS, UNIX)
Globals.OsType = WINDOWS

# G4C 연결용 IP (localhost)
Globals.LocalIp = 127.0.0.1

# DB서버 타입(mysql,oracle,altibase,tibero) - datasource 및 sqlMap 파일 지정에 사용됨
Globals.DbType = tibero
Globals.UserName=tibero
Globals.Password=tmax


#Tibero
Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver
Globals.Url=jdbc:tibero:thin:@127.0.0.1:17000:tibero

 

  • context-datasource.xml 파일 수정 
  • C:\eGovFrame\eGovFrameDev-4.0.0-64bit\workspace\egovFrame-simpleHomepage\src\main\resources\egovframework\spring\com\context-datasource.xml
    <!-- Tibero -->
    <bean id="dataSource-tibero" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${Globals.DriverClassName}"/>
        <property name="url" value="${Globals.Url}" />
        <property name="username" value="${Globals.UserName}"/>
        <property name="password" value="${Globals.Password}"/>
    </bean>

Table 및 데이터 생성 

tibero 에 접속을 해서 웹 프로젝트에 포함된 SQL 을 수행 한다. 

  • all_sht_ddl_tibero.sql (테이블 생성) 
  • all_sht_data_tibero.sql(데이터 입력)

SQL> @all_sht_ddl_tibero
TBR-7071: Schema object 'TIBERO.IDS' was not found or is invalid.


Table 'IDS' created.

TBR-7071: Schema object 'TIBERO.LETTCCMMNCLCODE' was not found or is invalid.


Table 'LETTCCMMNCLCODE' created.

TBR-7071: Schema object 'TIBERO.LETTCCMMNCODE' was not found or is invalid.


Table 'LETTCCMMNCODE' created.

 

SQL> @all_sht_data_tibero

1 row inserted.


1 row inserted.


1 row inserted.

 

Resource Compile

  • Run As -> Maven clean(빌드된 리소스 삭제)
  • Run As -> Maven Install(compile 을 통한 리소스 재빌드) -> war 파일이 재 빌드 된다. 

 

 

Tomcat Server 설치 

  • File -> New -> Other -> Server -> Server -> Apache 클릭수  설치할 Tomcat version  버전 선택 

  • Tomcat lib 폴더로 Tibero  jdbc 라이브러리 복사 

  • 설치하고자 하는 디렉토리 생성 후 (Tomcat) 라이센스 동의 후 설치 

  • 정상적으로 실치가 되면 하단 탭에 Server 탭이 생성 된다. 
  • Tomcat 서버  마우스 우 클릭 -> Add and Remove 메뉴를 클릭 

  • 이후  Add 버튼을 눌러서 deploy 하고자 하는 웹 프로젝트를 선택 한다. 

 

 

접속 테스트

 

  • http://localhost:8080/sht_webapp/cmm/main/mainPage.do
  • ID/PASSWD : admin/1

 

728x90
반응형
728x90
반응형

Django-debug-toolbar 란? 

장고를 사용해서 프로그램을 개발하다 보면 웹페이지에서 디버깅하는데 많은 어려움이 있습니다. 

개발 시 디버깅을 도와주는 좋은 라이브러리가 있어 설치 및 사용 방법에 대해 간단히 소개합니다. 

해당 라이브러리는 sql,정적 파일 , cache 같은 내용을 디버깅하는데 많은 도움이 될 것 같습니다. 

장고로 웹페이지를 개발한다면 필수로 봐야 겠네요.. 

 

Django-debug-toolbar 설치

pip install django-debug-toolbar

 

> pip install django-debug-toolbar
Collecting django-debug-toolbar
  Downloading django_debug_toolbar-3.4.0-py3-none-any.whl (218 kB)
     ---------------------------------------- 218.4/218.4 KB 6.7 MB/s eta 0:00:00
Requirement already satisfied: Django>=3.2 in d:\000.program\python\venv\pmsenv\lib\site-packages (from django-debug-toolbar) (4.0.4)
Requirement already satisfied: sqlparse>=0.2.0 in d:\000.program\python\venv\pmsenv\lib\site-packages (from django-debug-toolbar) (0.4.2)
Requirement already satisfied: asgiref<4,>=3.4.1 in d:\000.program\python\venv\pmsenv\lib\site-packages (from Django>=3.2->django-debug-toolbar) (3.5.1)
Requirement already satisfied: tzdata in d:\000.program\python\venv\pmsenv\lib\site-packages (from Django>=3.2->django-debug-toolbar) (2022.1)
Requirement already satisfied: backports.zoneinfo in d:\000.program\python\venv\pmsenv\lib\site-packages (from Django>=3.2->django-debug-toolbar) (0.2.1)
Installing collected packages: django-debug-toolbar
Successfully installed django-debug-toolbar-3.4.0

settings.py 파일 수정

  • INSTALLED_APPS 설정에 debug_toolbar 를 작성합니다.
INSTALLED_APPS = [
     'debug_toolbar',
    ]

 

  • MIDDLEWARE 추가 
MIDDLEWARE = [
    'debug_toolbar.middleware.DebugToolbarMiddleware',
]
  • INTERNAL_IPS 추가
INTERNAL_IPS = [
    '127.0.0.1',
]

urls.py 파일 수정

  • 장고 앱이 urls.py 가 아나리 , urls.py 는 프로젝트의 url 입니다. 
  • chrome 에서 debug_toolbar 가 보이지 않아 이곳 저곳 검색해 보던 중 해결책을 찾았습니다. 

  • urls.py 에 아래 두 줄을 추가 해주세요 
import mimetypes
mimetypes.add_type("application/javascript", ".js", True)

최종 수정 

from django.contrib import admin
from django.urls import include, path
import mimetypes
import config.settings.base
from config import settings

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
if config.settings.base.DEBUG:
    mimetypes.add_type("application/javascript", ".js", True)
    if "debug_toolbar" in settings.base.INSTALLED_APPS:
        import debug_toolbar
        urlpatterns = [path("__debug__/", include(debug_toolbar.urls))] + urlpatterns

 

Django debug_toolbar 적용 확인 

  • debug_toolbar 가 적용된 django 웹 페이지 

django debug_toolbar

  • 이제 로컬에서 개발 할때 디버그를 편하게 할 수 있게 되었습니다. 

728x90
반응형
728x90
반응형

장고 튜토리얼

이전 글에서는 장고 기본 환경 설정 및 앱 서비스 호출하는 방법에 대해 알아보았습니다. 

이번 글에서는 MySQL 과 Django 연동하는 방법에 대해 알아보겠습니다. 

 

MySQL 설치 

Mysql 설치 과정은 이전에 작성해 놓았던 글로 대체 하겠습니다. 

Mysql 설치 

서버는 docker-compose 파일로 쉽게 설치 하실수 있습니다. 

하지만 Mysql 서버는 리눅스 서버에 설치 하였고 

개발은 윈도우에서 개발해야 합니다. 

Django 에서 Mysql 서버에 접속하기 위해서는 Mysqlclient 가 필요합니다. 

  • Django -> Mysql Client -> Mysql Server

파이선 가상환경에서 mysql client 를 설치하도록 하겠습니다. 

pip install mysqlclient

pip mysqlclient install

mysql 클라이언트 설치시 에러가 난다면 아래 경로에서 별도로 mysqlclient를 다운로드하여 설치하시기 바랍니다.

pip install mysqlclient-1.4.6-cp37-cp37m-win32.whl

 

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

Django Mysql 연결 설정(config/settings/base.py)

settings.py -> config/settings/base.py 로 수정했습니다. 

DATABASE 항목을 수정 합니다. 

DATABASES = {
     'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysql8',
        'USER': 'testuser',
        'PASSWORD':'userpasswd',
        'HOST':'192.168.17.56',
        'PORT':'23306',
    }
}

Django mysql table migrate

장고 서비스를 수행하기 위해서는 연동하고자 하는 DB(Mysql)에 장고에서 필요로 하는 테이블들이 생성되어야 합니다. 

장고는 정말 편리하게도 base.py(settings.py) 에서 정의된 앱  목록(INSTALLED_APPS)을 보고 자동으로 연동할 database 에 앱 실행에 필요로 하는 테이블들을 만들어 줍니다. 

python manage.py migrate

위 명령을 수행하면 아래와 같이 mysql db 에 테이블들이 자동으로 생성됩니다. 

 

(pollsEnv) C:\pydev\venv\polls>python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying polls.0001_initial... OK
  Applying sessions.0001_initial... OK

Django 모델 만들기 (models.py)

  • polls/models.py 에 Qustion, Choice 클래스를 생성합니다. 
from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

Django 모델 활성화 (config/settings/base.py)

  • settings.py 파일을 이전에 base.py 파일로 변경하였습니다. 
  • 해당 파일에 장고 polls 앱을 추가합니다. 
  • 'polls.apps.PollsConfig',
INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
  • python manage.py migrate 는 실제 mysql db에 테이블을 생성 하고 makemigrations polls 앱 model.py 에 등록된 클래스 정보를 바탕으로 데이터 모델을 파일을 만든다. 
  • 해당 명령을 수행하면 polls\migrations 디렉토리에 \0001_initial.py 파일이 자동으로 생성 된다. 
  • model.py 변경 사항이 발생하면 makemigrations  명령 수행 이후 python manage.py migrate 수행하면 db 에 변경된 사항이 적용된다. 
python manage.py makemigrations polls

python manage.py makemigrations polls
Migrations for 'polls':
  polls\migrations\0001_initial.py
    - Create model Question
    - Create model Choice

  • polls\migrations
class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Question',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('question_text', models.CharField(max_length=200)),
                ('pub_date', models.DateTimeField(verbose_name='date published')),
            ],
        ),
        migrations.CreateModel(
            name='Choice',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('choice_text', models.CharField(max_length=200)),
                ('votes', models.IntegerField(default=0)),
                ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='polls.question')),
            ],
        ),
    ]

Django 웹 관리자 생성하기

이제 장고웹 접속 계정 관리 방법에 대해 알아보겠습니다. 

아래 명령을 수행 하면 장고 admin에 접속할 수 있습니다. 

INSTALLED_APPS에 정의된 django.contrib.**** 앱 서비스와 관련된 테이블들이 만들어졌기에 가능합니다. 

아래 명령을 수행하면 장고 admin(super 계정) 을 만들 수 있습니다. 

python manage.py createsuperuser
  • amin user 에 비밀번호는 admin123으로 유저를 생성했습니다. 
(pollsEnv) C:\pydev\venv\polls>python manage.py createsuperuser
사용자 이름 (leave blank to use 'tester'): admin
이메일 주소: admin@example.com
Password:
Password (again):
비밀번호가 사용자 이름와 너무 유사합니다.
비밀번호가 너무 일상적인 단어입니다.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

Django admin 화면 접속 

  • http://127.0.0.1:8000/admin 으로 접속을 해보겠습니다. 

django admin 접속

 

앞서 생성한 user와 비밀 번호를 입력하면 그럴듯한 화면이 나타납니다. 

별다른  코드 작성을 하지 않았는데 Django에서는 기본으로 admin 앱을 제공해주고 있습니다. 

django admin login

Django admin  poll app 추가 하기

장고 어드민에 접속 했지만 poll app 관련 메뉴는 보이지 않습니다.

이번에는 polls 앱을 장고 어드민 화면에 추가 하는 작업을 진행하겠습니다. 

 

  • polls/admin.py 파일에 polls 앱을 추가합니다. 
from django.contrib import admin

from .models import Question

admin.site.register(Question)
  • 다시 장고 어드민 화면에 접속 해보세요 !
  • polls 앱이 등록된 것을 확인하실 수 있습니다. 

  • polls Questions 등록해보기 

내용을 작성해서 이것저것 눌러보시기 바랍니다. 

 

이상으로 두 번째 강좌를 마치겠습니다. 

728x90
반응형
728x90
반응형

장고 튜토리얼

이번 글에서는 장고 튜토리얼 예제인 polls 앱 예제를 가지고 장고에 대한 기본적인 이해와 

사용법에 대해 알아보겠습니다. 

 

파이썬 설치 

파이썬 홈페이지에서 윈도우용 파이썬 바이너리를 다운로드 받습니다. 

튜토리얼이 장고 버전이 4.0 기준으로 작성되어 있어 파이썬이 지원하는 3.8 버전으로 다운로드하여 설치합니다. 

  • 장고 호환성 버전 

 

 

https://www.python.org/downloads/windows/

 

Python Releases for Windows

The official home of the Python Programming Language

www.python.org

 

python 3.8 다운로드

설치후 윈도우 환경 변수를 세팅하면 끝입니다. 

 

윈도우 환경 변수 셋팅

 

파이썬 가상환경 생성 및 장고 설치 

  • 절차 
#파이썬 개발 디렉토리 생성 
mkdir pydev
cd pydev
 
#가상환경 디렉토리 생성 및 이동
mkdir venv
cd venv
 
#가상환경 생성
python -m venv pollsEnv
 
#가상환경 진입
#윈도우
pollsEnv\Scripts\activate
#리눅스
pollsEnv\bin\activate



#파이썬 팩키지 관리자 pip 업그레이드 
python  -m pip install --upgrade pip

#Django 설치 
pip install Django==4.0.4
  • 실행 과정 

장고 설치 이미지

Django 프로젝트 생성  및 실행 

django-admin startproject polls

python manage.py runserver

startproject 명령을 수행하면 manage.py , polls 디렉 토리가 생성됩니다. 

polls 디렉토리에 있는 python manage.py runserver 명령을 수행하면 장고 웹이 실행됩니다. 

 

python manage.py runserver 실행

  • 장고 웹 접속 (http://127.0.0.1:8000/)
  • 웹페이지에 접속을 하면 아래 화면 처럼 장고 웹페이지가 나옵니다. 

django 화면

 

파이참 다운로드 및 실행 

장고를 개발하기 위해서는 파이썬 개발 툴이 필수입니다. 
파이썬 공식 홈페이지에서 파이참을 다운 로드합니다. 

https://www.jetbrains.com/ko-kr/pycharm/download

 

무료 사용 버전인 윈도우 Community 버전을 다운로드 받아 설치 합니다. 

 

윈도우 Pycharm 다운로드

 

 

  • 앞서 만들었던 polls 프로젝트를 오픈합니다. 
장고 polls 프로젝트 오픈

 

 

 

반응형

 

파이참(Pycharm) 파이썬 장고 환경 설정 

Python Interpreter 설정 

파이참 메뉴에서 File-> Settings -> Project -> Python Interpreter 를 선택해서 파이선 환경을 셋팅합니다. .

 

python Interpreter 셋팅 그림

python Interpreter 셋팅을 마치면  윈도우 cmd 창에서 pip list 명령으로 파이썬 설치 리스트를 확인한 결과와 동일하게 

가상환경 설치 패키지를 확인할 수 있습니다.

python Interpreter 셋팅 후 그림

장고 실행 환경 설정 

파이썬 메뉴 중 Run -> Add new run Configuration -> Python 선택

  • Scripts : 장고 polls 프로젝트  manage.py 선택 
  • Prameters : runserver 기입

Run Configurations 설정

장고 프로 젝트 실행

Run -> Run.. 버튼을 누르거나 오른쪽 Run 버튼을 누르면 cmd 창에서 python manager.py runserver 명령과 동일하게 파이참에서 장고 프로젝트를 실행할 수 있습니다.  

파이참 장고 실행 화면

 

 

장고 polls 프로젝트 구조 변경

여러 블로그 글을 찾아보니 환경 설정은 별도의 디렉토리에서 관리하고 설정하는 것으로 보입니다. 

운영 환경과 개발 환경을 분리하기 위해 설정 파일을 별도로 분리해서 관리합니다. 

 

장고 polls 프로젝트 config 디렉 토리 생성 

  1. polls 디렉토리 이름 변경 : polls -> config
  2. settings 디렉토리 생성 
  3. settings.py -> base.py 로 이름 변경 
  4. base.py -> settings 디렉 토리 이동 

프로젝트 구조 변경

장고 polls 프로젝트 파일 내용 수정 

프로젝트 구조를 변경하면 3가지 파일을 변경해야 합니다. 

변경한 디렉토리 이름에 맞게 파일 내용을 수정합니다. 

헷갈리실 수 있으니 캡처된 그림을 참고하면서 수정합니다. 

 

1.manage.py

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.base')

2.base.py(settings.py)

ROOT_URLCONF = 'config.urls'

WSGI_APPLICATION = 'config.wsgi.application'

3.wsgi.py

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.base')

파일 내용 수정

 

 

장고 한글 설정 

장고 웹페이지가 한글로 출력되도록 한글 셋팅을 추가합니다. 

base.py (settings.py)

LANGUAGE_CODE = 'ko-kr'

TIME_ZONE = 'Asia/Seoul'

 

장고 polls 프로젝트 앱 작성 

프로젝트만 만들어서는 어떤 웹서비스도 수행할 수 없습니다. 

실제 웹서비스를 수행하기 위해서 python manage.py startapp polls 명령을 통해 앱 서비스를 만들겠습니다. 

python manage.py startapp polls

파이참은 고맙게도 Terminal 이란 기능을 제공합니다. 

윈도우 cmd 창을 열어서 별도 수행할 필요 없이 파이참 Terminal 에서 위 명령을 수행합니다. 

polls 디렉토리가 생성되었고 디렉 토리 밑으로 여러 가지 파일이 생성되었습니다. 

polls 앱 파일 내용 수정 

실제로 서비스를 위한 첫 번째 작업을 시작해 보겠습니다 

1. 프로젝트 urls.py 파일 수정 

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

2. polls 앱 하위 디렉터리 urls.py 신규 파일 생성 

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

3.polls/view.py 파일 내용 작성 

  • index 함수에서 작성한 출력 내용이 장고 화면에 보입니다.

 

from django.http import HttpResponse


def index(request):
    return HttpResponse(" 장고 튜토리얼 따라하기 첫번 째 ")
  • 파일 추가 및 수정된 파일 변경 사항을 다시 한번 확인해보시기 바랍니다. 

장고 polls&nbsp; 호출 순서

장고 polls 앱 접속 확인

http://127.0.0.1:8000/polls/ 로 접속합니다. 

간단하지만 view.py 에서 작성한 서비스가 출력되는 것을 확인할 수 있습니다. 

장고 호출 흐름도 다시 기억하기 

장고 서비스 호출 순서는  장고를 처음 시작하는 사람에게는 꼭 기억해야 할 중요한 부분인 것 같습니다.

project urls.py -> app urls.py -> app view.py 순서로 호출을 합니다. 

 

중요한 부분이고 헷갈리는 부분이라 다시 한번 정리하고 넘어가겠습니다. 

 

다음 장에서는 MySql과 장고 연동하는 방법에 대해 알아보겠습니다. 

728x90
반응형
728x90
반응형

python Django

파이썬 설치 

Django는 파이썬으로 개발된 웹 프레임워크입니다. 

스프링 웹을 개발하기 위해서는 jdk 설치가 필요한 것처럼 

장고 웹을 개발하기 위해서는 파이썬 설치가 필수입니다.

사용자의 개발 환경에 맞는 OS를 선택 후 파이썬 설치를 진행해 주세요 

파이썬 개발 환경 구성(가상 환경)

파이썬은 독립된 환경에서 개발이 가능하도록 가상 환경이라는 기능을 제공합니다. 

동일한 개발 PC에서 각각의 파이썬 버전과 용도에 따라 필요로 하는 패키지 설치를 개별 적으로 설치해서 

개발환경을 달리해서 개발을 진행할 수 있습니다.  

우분투 파이썬 가상환경 진입

* 파이썬 가상 환경에 대해서는 이전에 작성한 글을 참고하세요

#파이썬 개발 디렉토리 생성 
mkdir pydev
cd pydev

#가상환경 디렉토리 생성 및 이동
mkdir venv
cd venv

#가상환경 생성
python3 -m venv bookenv

#가상환경 진입
. bookenv/bin/activate

 

dev@ubuntu2004:~/pydev/venv$ python3 -m venv bookenv
dev@ubuntu2004:~/pydev/venv$ . bookenv/bin/activate
(booksite) dev@ubuntu2004:~/pydev/venv$ python -V
Python 3.8.10

윈도우 파이썬 가상환경 

윈도우에서 가상 환경이 생성 되는 구조는 리눅스와 다릅니다. 

가상환경 진입 방법은 리눅스와 같으나 가상환경에서 나올때는 Scripts\deactivate command 를 통해 가상환경에서 빠져 나올 수 있습니다. 

실행 경로는 Scripts 디렉토리에 위치해 있습니다. 

C:\PYDEV\VENV\BOOKENV
│  pyvenv.cfg

├─Include
├─Lib
│  └─site-packages
│      │  easy_install.py
│      │
│      ├─pip
│      ├─pkg_resources
│      │
│      ├─setuptools
│      ├─setuptools-41.2.0.dist-info
│      │
│      └─__pycache__

└─Scripts
        activate
        activate.bat
        Activate.ps1
        deactivate.bat
        easy_install-3.7.exe
        easy_install.exe
        pip.exe
        pip3.7.exe
        pip3.exe
        python.exe
        pythonw.exe

윈도우 가상환경 진입 

C:\pydev\venv>bookenv\Scripts\activate

(bookenv) C:\pydev\venv>python -V
Python 3.7.7

(bookenv) C:\pydev\venv>bookenv\Scripts\deactivate.bat
C:\pydev\venv>

 

장고 설치(Django 설치)

Django 웹페이지를 만들기 위해  Django 팩키지를 설치하겠습니다. 

pip 명령을 통해 Django를 설치하겠습니다. 

가상 환경 진입 후 파이썬 패키지 설치와 관리를 도와주는 pip 명령을 통해 장고를 설치합니다. 

pip install Django==4.0.4

pip list Command 를 통해 가상 환경에 설치된 파이썬 패키지들을 확인합니다. 

 

(booksite) dev@ubuntu2004:~/pydev/venv/booksite$ pip list
Package            Version
------------------ -------
asgiref            3.5.0  
backports.zoneinfo 0.2.1  
Django             4.0.4  
pip                20.0.2 
pkg-resources      0.0.0  
setuptools         44.0.0 
sqlparse           0.4.2  

django 설치 그림

파이썬 장고 프로 젝트 생성 및 실행 하기 

이제 본격적으로 Django(장고) 프로젝트를 만들어 보겠습니다. 

django-admin startproject 명령으로 장고 프로젝트를 만들겠습니다. 

장고 프로 젝트 생성

명령 수행위치는 venv 디렉토리 입니다. 

django-admin startproject booksite

위 명령으로 장고 프로젝트를 만들고 디렉터리 구조를 확인해 보자 

book라는 디렉토리와 manage.py 파일이 생성되었습니다. 

manage.py를 통해 book 애플리케이션을 실행하는 구조라고 이해하면 될 것 같습니다. 

django-admin startproject 실행 및 디렉토리 구조

 

장고 프로 젝트 실행

python manage.py runserver 명령을 통해 장고를 실행합니다. 

실행 후 http://127.0.0.1:8000/ 로 웹에 접속을 해봅니다. 

아래와 같은 화면이 나온다면 정상적으로 장고가 설치되고 프로젝트가 생성된 것입니다. 

장고에서 사용되는 default 포트는 8000 이며 포트를 변경하고자 한다면 runserver 명령 뒤에 사용 포트를 써줍니다. 

  • python manage.py runserver 8080
python manage.py runserver

manage.py runserver

 

django 실행 화면

파이썬 개발 도구 파이참(Pycharm) 다운로드 

 

장고를 개발 하기 위해서는 파이썬 개발 툴이 필수입니다. 

파이썬은 jupyter notebook, Atom,Visual Studio Code 등 여러 가지 개발 툴들로  개발을 할 수 있지만

그중에  저는 파이 참을 사용해 장고 웹을 개발하는 과정에 대해 소개해 보겠습니다. 

 

파이썬 공식 홈페이지에서 파이참을 다운로드합니다. 

https://www.jetbrains.com/ko-kr/pycharm/download/#section=linux

 

다운로드 PyCharm: JetBrains가 만든 전문 개발자용 Python IDE

 

www.jetbrains.com

 

Pycharm 다운로드

파이참 실행 

제가 사용하는 주 데스크톱은 어떠다 보니 우분투라서 리눅스 환경에서 테스트를 진행하겠습니다. 

#압축해제
tar xvzf pycharm-community-2022.1.tar.gz 
#파이참 실행경로 이동
cd pycharm-community-2022.1/
cd bin

파이참 실행
sh pycharm.sh

 

파이참이 실행되면 파이썬 가상 환경 프로젝트를 Open 합니다. 

장고 booksite 프로젝트 오픈

파이참 파이썬 환경 설정

이제 파이참에서 파이썬 환경설정을 진행하겠습니다. 

파이썬 Interpreter 설정

File -> Setting 를 선택해서 장고 book 프로젝트 Interpreter 를 설정하겠습니다. 

가상환경으로 만든 파이썬을 선택합니다. 

Setting 설정 화면에서 톱니바퀴 버튼을 눌러서콘솔에서 작업했던 가상환경 파이썬을 선택합니다. 

 

파이썬 Interpreter 설정

파이참 Add Configuration 설정

장고를 실행하기 위한 환경설정을 진행합니다. 

파이참 우측 상단 Add onfiguration 버튼을 눌러서 파이썬 실행 설정을 셋팅합니다. 

 

  • Name:프로젝트 실행 이름
  • Scripts path :가상환경 장고 프로젝트(book) manage.py 
  • Parameters:장고 실행 명령 

python Run Configuration setting

실행 환경 셋팅후 오른쪽 화살표 버튼을 누르면 콘솔에서 python manage.py runserver 로 수행한 것처럼 장고 프로젝트를 

파이참에서 실행할 수 있습니다. 

Django 한글 설정 

book 프로젝트의 settings.py 를 수정 후 장고 프로젝트를 재 실행합니다. 

화면이 한글로 바뀐것을 보실 수 있습니다. 

이제 까지 기본 장고 셋팅에 대해 알아보았습니다. 

 

#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ko-kr'

#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Seoul'
USE_I18N = True

728x90
반응형
728x90
반응형

STS 란 ?

STS 란 Spring Tool Suit 약어 이며 , Spring FrameWork 을 지원하기 위해 최적화 된 IDE 개발 툴입니다. 
기존에 이클립스(Eclipse) 기반 환경에서 웹서비스를 개발 하기 위해서는 개발에 필요한 여러가지 필수 플러그인을 별도로 설치해야 했습니다. 
STS 는 Eclipse 환경에서는 기본 설치 되지 않은 내장 톰켓 서버나 , 빌드툴( gradle,maven) ,git 등이 기본으로 플러그인에 포함되어있어 보다 쉽고 간편하게 웹서비스를 개발 할수 있도록 도와주는 고마운 툴입니다. 

 

 

STS 다운로드

필자는 우분투 환경이라 리눅스 버전을 다운로드 받아 설치 하는 방법에 대해 소개 하겠습니다. 

  1. spring.io 사이트에서 리눅스 버전을 다운로드 받습니다. 
  2. 다운로드 받은 파일을 압축 해제 합니다. 
tar xvzf spring-tool-suite-4-4.14.0.RELEASE-e4.23.0-linux.gtk.x86_64.tar.gz​


https://spring.io/tools

 

Spring Tools 4 is the next generation of Spring tooling

Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Theia IDE.

spring.io

STS download

STS 실행 

 

  • ./SpringToolSuite4 실행

dev@ubuntu2004:~/STS/sts-4.14.0.RELEASE$ ll
합계 1328
drwxr-xr-x  9 dev dev   4096  3월 14 01:20 ./
drwxrwxr-x  3 dev dev   4096  4월 16 22:32 ../
-rw-r--r--  1 dev dev     61  3월  9 01:22 .eclipseproduct
drwxr-xr-x  2 dev dev   4096  3월 14 01:18 META-INF/
-rwxr-xr-x  1 dev dev  86328  3월 14 01:16 SpringToolSuite4*
-rw-r--r--  1 dev dev    681  3월 14 01:20 SpringToolSuite4.ini
-rw-r--r--  1 dev dev 160278  3월 14 01:20 artifacts.xml
drwxr-xr-x  5 dev dev   4096  3월 14 01:18 configuration/
drwxr-xr-x  2 dev dev   4096  3월 14 01:18 dropins/
drwxr-xr-x 72 dev dev  12288  3월 14 01:20 features/
-rwxr-xr-x  1 dev dev 136129  3월 14 01:16 icon.xpm*
-rw-r--r--  1 dev dev  11522  3월 14 01:12 license.txt
-rw-r--r--  1 dev dev 845709  3월 14 01:20 open-source-licenses.txt
drwxr-xr-x  5 dev dev   4096  3월 14 01:19 p2/
drwxr-xr-x 24 dev dev  53248  3월 14 01:20 plugins/
drwxr-xr-x  2 dev dev   4096  3월 14 01:18 readme/

 

 

728x90
반응형
728x90
반응형

Nginx 웹서버 설치 방법

Django 웹서버에 배포 하기 위해 Nginx 설치방법에 대해 알아 보겠습니다. 

1.Nginx 저장소 추가

/etc/yum.repos.d/ 경로에 nginx 레파지 토리 추가 합니다. 

 

$ cd /etc/yum.repos.d/
$ vi   nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

 

2. 설치

 yum install -y nginx

 

3.Nginx 설정 파일 수정 

Nginx 설정 관련한 파일을 수정합니다. 

  • /etc/nginx/conf.d/default.conf 
  • nginx 에서 사용할 포트를 수정합니다. 사용하고자 하는 포트를 정해서 변경해주세요 
  • 저는 80 -> 8088 포트를 사용하겠습니다.
server {
    listen       8088;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

4. 방화벽 설정

Nginx 포트 방화벽 해제를 합니다. 

테스트를 위해 방화벽을 중지 시켰습니다.

보안이 걱정 된다면 방화벽 활성화 이후 Nginx 리스너 포트를 개방해 주세요 

$ firewall-cmd --state       
running
# 방확벽 중지 
systemctl stop firewalld

# 방확벽 시작 
systemctl start  firewalld

# 방화벽 상태 확인 
firewall-cmd --state

# 포트 개방
firewall-cmd --permanent --zone=public --add-port=8088/tcp

# 방화벽 재시작
firewall-cmd --reload

# 개방된 포트 목록 확인
firewall-cmd --list-ports

5. Nginx 서비스 시작

#nginx 서비스 활성화
systemctl enable nginx

#Nginx 서비스 시작 
systemctl start nginx

#Nginx 서비스 상태 확인
systemctl status nginx
  • nginx 서비스 상태 확인

$ systemctl status nginx
* nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since 금 2022-04-08 11:21:58 KST; 1min 9s ago
     Docs: http://nginx.org/en/docs/
  Process: 23340 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
 Main PID: 23341 (nginx)
    Tasks: 5
   Memory: 3.2M
   CGroup: /system.slice/nginx.service
           |-23341 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
           |-23342 nginx: worker process
           |-23343 nginx: worker process
           |-23344 nginx: worker process
           `-23345 nginx: worker process

6. Nginx  웹페이지 접속 

http://localhost:8088/ 로 접속 해서 정상 적으로 설치 되었는지 확인 합니다.

Nginx&nbsp; 접속

728x90
반응형

+ Recent posts