LoginSignup
3
5

More than 1 year has passed since last update.

Django環境構築〜トップページをブラウザで表示するまで

Last updated at Posted at 2023-03-11

環境

  • MacOS(M1):Ventura バージョン13.0.1
    $ uname -m # arm64
    
  • Python:バージョン3.10.7
  • VSCord:バージョン1.76.0 (Universal)

手順

1. プロジェクトの作業用ディレクトリを作成し、VSCordを開く

$ mkdir ~/Desktop/demo_project # 好きなプロジェクト名
$ cd ~/Desktop/demo_project
$ code .

2. 仮想環境作成

$ python3 -m venv myenv # python3 -m venv 環境名
$ source myenv/bin/activate # 作成した仮想環境へ切り替え
$ which python # /Users/名前/Desktop/demo_project/myenv/bin/python

3. Djangoインストール ・ バージョン確認

$ pip install --upgrade pip # Successfully installed pip-23.0.1
$ pip install django
$ python -m django version # 4.1.7

4. Djangoプロジェクト作成

$ django-admin startproject config . # 「configディレクトリ」と「manage.pyファイル」が作成される

5. Djangoプロジェクト起動

$ python3 manage.py runserver

スクリーンショット 2023-03-05 23.18.37.png

上記画面が表示されれば成功

サーバ停止はCtrl + c

Error: That port is already in use.となる場合

$ ps aux | grep -i manage
$ kill -9 プロセスID

6. アプリケーション追加

$ python manage.py startapp demo # 好きなアプリケーション名

7. 初期設定

  • 現状、まだプロジェクトとアプリケーションは紐づいていない為、初期設定を行う
  • また、Djangoで扱う言語のデフォルトを日本語にする

日本語化

106行目辺りにあるデフォルトの記述を以下に書き換える

config/settings.py
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'

INSTALLED_APPSに追加

config/settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'demo', # 追記
]

8. テンプレートファイル

(myenv) (base) ryo@RyonoMBP demo_project % mkdir templates/demo
(myenv) (base) ryo@RyonoMBP demo_project % touch templates/demo/top.html
demo_project/templates/top.html
<!DOCTYPE html>
<html lang="ja">
  <head>
      <meta charset="UTF-8">
      <title>DemoApp</title>
  </head>
  <body>
    <h1>TopPage</h1>
  </body>
</html>

9. views.py

demo/views.py
from django.views.generic.base import TemplateView

class TopView(TemplateView):
    template_name = 'demo/top.html'

10. urls.py

(myenv) (base) ryo@RyonoMBP demo_project % touch demo/urls.py
demo_project/demo/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.TopView.as_view(), name='top'),
]
demo_project/config/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('demo.urls')),
]

11. settings.py

  • DIRSを修正
demo_project/config/settings.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR, 'templates'],

起動

$ python3 manage.py runserver

スクリーンショット 2023-03-11 23.52.11.png

完了

参考

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5