投稿 2021.4.28
djangoの勉強を始めたのでブログを作成してみました。
ソースコードをgithubにあげました。
ドメイン代のみで運用開始するまでをチュートリアルとして記載します。
Python製のブログを自分で運用してみたい方の参考になれば幸いです。
・mac OS BigSur
・Python 3.9.4
以下のgithubからソースコードをチェックアウトする
djangoWebSite
PJフォルダがダウンロードされたら任意の名前に変更し任意の場所に配置する
※私は「download」フォルダに保存された「djangoWebSite-main」を
以下のように変更しました。
一つ下の階層の「djangoWebSite」も「testSite」に直していきます。
変更前:/Users/keisato/Downloads/djangoWebSite-main/djangoWebSite
変更後:/Users/[user名]/develop/testSite/testSite
各ファイル内のPJ名も変更していきます。
/Users/[user名]/develop/testSite/testSite/settings/base.py
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoWebSite.settings") // djangoWebSite → testSite
ROOT_URLCONF = 'djangoWebSite.urls' // djangoWebSite → testSite
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'djangoWebSite.context_processors.common', // djangoWebSite → testSite
'djangoWebSite.context_processors.settings_param', // djangoWebSite → testSite
],
},
},
]
WSGI_APPLICATION = 'djangoWebSite.wsgi.application' // djangoWebSite → testSite
/Users/[user名]/develop/testSite/testSite/asgi.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoWebSite.settings') // djangoWebSite → testSite
/Users/[user名]/develop/testSite/Procfile
web: gunicorn djangoWebSite.wsgi --log-file - // djangoWebSite → testSite
/Users/[user名]/develop/testSite/testSite/wsgi.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoWebSite.settings.production') // djangoWebSite → testSite
/Users/[user名]/develop/testSite/manage.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoWebSite.settings.local') // djangoWebSite → testSite
ターミナルを開き、PJフォルダで以下のコマンドで仮想環境を作成します。
~/develop/testSite
$ python3.9 -m venv env
※私の環境は複数バージョンのPythonが入ってるのでバージョン指定して実行しています。
以下コマンドで最新バージョンで実行される場合は以下でも構いません。
このコマンドで「env」という名前で仮想環境を作成できます。
~/develop/testSite
$ python -m venv env
以下のコマンドで実行されるバージョンの違いがわかります
~/develop/testSite
$ python --version
Python 3.7.0
~/develop/testSite
$ python3.9 --version
Python 3.9.4
次に仮想環境をアクティベートします。
先頭に「env」とつきます。
~/develop/testSite
$ source ./env/bin/activate
~/develop/testSite
env $
仮想環境を抜ける場合
~/develop/testSite
env $ deactivate
~/develop/testSite
$
必要なパッケージをインストールしていきます。
必要なパッケージは「requirements.txt」に記載されているので、
読み込む形でインストールしていきます。
~/develop/testSite
env $ pip install -r requirements.txt
以下のコマンドで仮想環境にインストールされたパッケージを確認できます。
~/develop/testSite
env $ pip list
Package Version
------------------------- ---------
asgiref 3.3.4
beautifulsoup4 4.9.3
certifi 2020.12.5
chardet 4.0.0
cloudinary 1.25.0
dj-database-url 0.5.0
dj-static 0.0.6
Django 3.2
django-cloudinary-storage 0.3.0
django-heroku 0.3.1
django-mdeditor 0.1.18
django-toolbelt 0.0.1
gunicorn 20.1.0
idna 2.10
Markdown 3.3.4
Pillow 8.2.0
pip 21.1
psycopg2 2.8.6
pytz 2021.1
requests 2.25.1
setuptools 54.2.0
six 1.15.0
soupsieve 2.2.1
sqlparse 0.4.1
static3 0.7.0
urllib3 1.26.4
whitenoise 5.2.0
次にDBを作成していきます。
~/develop/testSite
env $ python3.9 manage.py makemigrations
~/develop/testSite
env $ python3.9 manage.py makemigrations blog
Migrations for 'blog':
blog/migrations/0001_initial.py
- Create model Category
- Create model Comment
- Create model Tag
- Create model SiteDetail
- Create model Reply
- Create model Post
- Create model ContentImage
- Add field post to comment
~/develop/testSite
env $ python3.9 manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, blog, contenttypes, flatpages, sessions, sites
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 sites.0001_initial... OK
Applying sites.0002_alter_domain_unique... OK
Applying blog.0001_initial... OK
Applying flatpages.0001_initial... OK
Applying sessions.0001_initial... OK
管理画面のログインユーザを作成する
~/develop/testSite
env $ python3.9 manage.py createsuperuser
ユーザー名 (leave blank to use 'satokesuk'): [任意のユーザ名]
メールアドレス: [自分のメールアドレス]
Password: [任意のパスワード]
Password (again): [任意のパスワード]
ローカル環境で起動します
~/develop/testSite
env $ python3.9 manage.py runserver
以下のURLにアクセスすると画面が表示されます
こちらは管理画面です
「createsuperuser」実行時のユーザ名とパスワードを入力すればログインできます。
以上ローカル環境で起動するところまででした。
次はherokuにデプロイし動かしていきます。