Django3.0 프로젝트 구축시의 순서(+MySQL, pipenv)
개요
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/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設定を記載していく
]
Reference
이 문제에 관하여(Django3.0 프로젝트 구축시의 순서(+MySQL, pipenv)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tikaranimaru/items/3fb573f880508ab320a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)