Django3.0 프로젝트 구축시의 순서(+MySQL, pipenv)

10387 단어 장고3.0Pipenv장고

개요



Django3.0을 시작할 때의 메모를 기재한다.

pipenv 설정



pipenv 구축 (이번에는 python3.7 지정)
$ pipenv --python 3.7
$ pipenv install

# Djnagoをインストール
$ pipenv install django==3.0.5

# mysql接続用にインストールしておく
pipenv install mysqlclient


다음 내용으로 Pipfile을 할 수 있습니다.
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
django = "==3.0.5"
mysqlclient = "*"

[requires]
python_version = "3.7"

초기화



장고 프로젝트 시작
# pipenvの環境を起動
$ pipenv shell

# djangoプロジェクトを作成する
$ django-admin startproject config .

# アプリケーション作成
python manage.py startapp myapp
config 의 부분이 프로젝트명이지만, 설정 파일계가 안에 놓여지기 때문에, config로서 두는 것이 베터

환경 설정을 설정하여 사용자 정의


  • config 바로 아래에 settings 디렉토리를 만듭니다
  • setting.py를 복사하여 base.py를 만듭니다 (프로덕션 및 로컬 공통 파일이됩니다)
  • development.py 및 production.py 만들기
  • dvelopment.py에 log 및 base.py를로드하도록 설정
  • base.py에서 만든 응용 프로그램 설정 및 일본어 설정
  • manage.py에서 development.py를로드하도록 수정

  • config/settings/development.py
    from .base import * # baseの設定不ファイルを読み込む
    
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True
    
    ALLOWED_HOSTS = []
    
    # ロギング設定
    LOGGING = {
        'version': 1,  # 1固定
        'disable_existing_loggers': False,
    
        # ロガーの設定
        'loggers': {
            'django': {
                'handlers': ['console'],
                'level': 'INFO',
            },
            'myapp': {
                'handlers': ['console'],
                'level': 'DEBUG',
            },
        },
    
        # ハンドラの設定
        'handlers': {
            'console': {
                'level': 'DEBUG',
                'class': 'logging.StreamHandler',
                'formatter': 'dev'
            },
        },
    
        # フォーマッタの設定
        'formatters': {
            'dev': {
                'format': '\t'.join([
                    '%(asctime)s',
                    '[%(levelname)s]',
                    '%(pathname)s(Line:%(lineno)d)',
                    '%(message)s'
                ])
            },
        }
    }
    

    config/settings/common.py
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'myapp', # <= 追記
    ]
    # :
    # :
    LANGUAGE_CODE = 'ja' # 日本仕様に修正
    
    TIME_ZONE = 'Asia/Tokyo' # 日本仕様に修正
    

    manage.pu
        os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.development')
    

    MySQL 설정



    config/settings/common.py
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'myapp_db', # ローカルに予め作成したDB
            'USER': 'root',
            'HOST': '127.0.0.1',
            'PORT': '3306',
        }
    }
    

    ※mysql 서버는 brew등으로 인스톨 해 둔다

    migrate가 통과하면 DB 연결은 OK
    # 設定ファイルの指定が必要なので注意
    $ python manage.py migrate --settings=config.settings.development
    

    디렉토리 정리



    model,views,forms,templates 디렉토리를 만들어 클래스를 분리할 수 있도록 합니다.
    부모 클래스 base.py도 필요에 따라 만들어 둡니다.
    .
    ├── Pipfile
    ├── Pipfile.lock
    ├── README.md
    ├── config
    │   ├── __init__.py
    │   ├── asgi.py
    │   ├── settings
    │   │   ├── __init__.py
    │   │   ├── base.py
    │   │   ├── development.py
    │   │   └── production.py
    │   ├── urls.py
    │   └── wsgi.py
    ├── myapp
    │   ├── __init__.py
    │   ├── admin.py
    │   ├── apps.py
    │   ├── forms
    │   │   └── __init__.py
    │   ├── migrations
    │   │   └── __init__.py
    │   ├── models
    │   │   ├── __init__.py
    │   │   └── base.html
    │   ├── templates
    │   │   ├── __init__.py
    │   │   └── base.html
    │   ├── tests.py
    │   ├── urls.py
    │   └── views
    │       └── __init__.py
    ├── manage.py
    └── static
    

    시작해보기


    python manage.py runserver
    

    htp://127.0.0.1:8000/로 이동하여 다음 화면이 나타나면 OK



    urls.py 분리



    마지막으로 urls를 애플리케이션별로 나눌 수 있도록 수정

    config/urls.py
    from django.contrib import admin
    from django.urls import path, include # includeを追加
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('myapp/', include('myapp.urls')), # 追記
    ]
    

    myapp 용 urls.py 만들기

    myapp/urls.py
    from django.urls import path
    
    app_name='myapp'
    urlpatterns = [
      # myapp用のURL設定を記載していく
    ]
    

    좋은 웹페이지 즐겨찾기