TIL 23. Wedibooks Project(主プロジェクト)初期設定


Wedibooks Project


RedibooksのWebサイトをテーマにしたチームプロジェクト

Djangoプロジェクト初期設定


仮想環境の作成


プロジェクトのためにWedibooksというPython 3.8バージョンの仮想環境を作成し、アクティブにしました.
$ conda create -n [가상환경 이름] python=3.8
$ conda activate [가상환경 이름]
仮想環境にDjangoをインストールし、Djangoパッケージをインストールします.
m 1を使っているのでPyMySQLをインストールしました.
$ pip install django
$ pip install PyMySQL

データベースの作成


MySQLに入り、WedibooksというDBを生成しました.
$ mysql -u root -p
mysql> create database [DB 이름] character set utf8mb4 collate utf8mb4_general_ci;

プロジェクトの作成


プロジェクト名Wedibooksの名前をプロジェクト名とします.
$ django-admin startproject Wedibooks .

Django setting


データベースと秘密鍵の露出を避けるためにmy settgins.pyを生成して設定しました.
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': [DATABASE 명],
        'USER': [DB접속 계정명'],
        'PASSWORD': [DB접속용 비밀번호],
        'HOST': '127.0.0.1',
        'PORT': '3306',
		'OPTIONS': {'charset': 'utf8mb4'}
    }
}

SECRET_KEY = [SECRET_KEY]
サーバのすべてのIPへのアクセスを許可します.
ALLOWED_HOSTS = ['*']
my settingsの情報をインポートし、SECRET KEYとDATABASESを接続します.M 1 MySQL設定にPYMYSQLを追加します.
from my_settings import DATABASES, SECRET_KEY
import pymysql

pymysql.install_as_MySQLdb()

SECRET_KEY = SECRET_KEY
DATABASES = DATABASES
Corsheadersをインストールし、App、MiddleWareを設定します.
Admin,csrf,Authにコメントした.
$ pip install django-cors-headers

INSTALLED APPS = [
    # 'django.contrib.admin', # Admin 주석
    # 'django.contrib.auth', # auth 주석
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'corsheaders' # corsheaders App 등록
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware', # csrf 주석
    # 'django.contrib.auth.middleware.AuthenticationMiddleware', # auth 주석
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'corsheaders.middleware.CorsMiddleware', # corsheader MiddleWare 등록
]
settgins.CORSに関する設定をpyに追加しました.
##CORS
CORS_ORIGIN_ALLOW_ALL=True
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
)
CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)
APPEND SLASHオプションを追加して、URLの/関連エラーを削除します.
APPEND_SLASH = False

.gitignore


manage.pyのような階層gitignoreファイルを生成し、Python、pycharm、VisualStudio Code、Vium、MacOS、Linux、zshなどの使用環境に対応するキーワードをhttps://www.toptal.com/developers/gitignoreから選択して入れます.
SECRET KEYとDATABASE情報を分離したPythonファイルもあります.gitignoreに追加します.
## my_settings.py
my_settings.py

requirements.txt


プロジェクト環境にインストールするプログラムはrequirementsです.txtに含まれるべきだが自動インストールのプログラムは特に明記する必要はない.
$ pip freeze > requirements.txt
前述したように、すべてのプログラムがファイルに含まれているため、不要なファイル名が削除されます.
Django==3.2.4
django-cors-headers==3.7.0
PyMySQL==1.0.2

サーバーの実行


「サーバ動作」(Runserver)でエラーを検証します.
これまで基礎初期設定に問題がないか中間検査を行ってきた.
$ python manage.py runserver