無料でdjangoブログ運用(1)-ローカル起動

投稿 2021.4.28

目次

djangoの勉強を始めたのでブログを作成してみました。
ソースコードをgithubにあげました。
ドメイン代のみで運用開始するまでをチュートリアルとして記載します。
Python製のブログを自分で運用してみたい方の参考になれば幸いです。

実行環境

・mac OS BigSur
・Python 3.9.4

ソースコードをチェックアウト

以下のgithubからソースコードをチェックアウトする
djangoWebSite

github_images_01

PJフォルダがダウンロードされたら任意の名前に変更し任意の場所に配置する
※私は「download」フォルダに保存された「djangoWebSite-main」を
以下のように変更しました。
一つ下の階層の「djangoWebSite」も「testSite」に直していきます。

変更前:/Users/keisato/Downloads/djangoWebSite-main/djangoWebSite
変更後:/Users/[user名]/develop/testSite/testSite

PJ名を変更していく

各ファイル内の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設定まわり


次に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にアクセスすると画面が表示されます
github_images_02

こちらは管理画面です
github_images_03

「createsuperuser」実行時のユーザ名とパスワードを入力すればログインできます。

以上ローカル環境で起動するところまででした。
次はherokuにデプロイし動かしていきます。

この記事を書いた人

avatar

にいよん

WEBエンジニアで0&2歳娘のパパです。フルリモートでちいたまに引きこもり中。密かにFIRE目指してます。こんな情報を発信中→投資、IT技術、副業、仮想通貨、暗号資産、NFT、メタバース、ブロックチェーン

© 2021 - 2022 24365.dev