0
1

More than 1 year has passed since last update.

Django新しいアプリケーションの作成方法

Last updated at Posted at 2022-11-24

Djangoには新しいアプリケーションを作成するときの雛形が用意されている。
それを用いて、アプリケーションのディレクトリーを作成し、URLディスパッチを出来るようにするところまでをまとめる。

まず、Djangoのある仮想環境へ移動する。ターミナルやコマンドプロンプト(cmp)で実行する。
Anacondaを使用している場合は、以下の方法を用いる。

#仮想環境の構築
conda create -n djangoenv python=3.10 #djangoenvは仮想環境名、pythonのバージョン指定がなければ記入は不要。
#仮想環境の有効化
conda activate djangoenv#仮想環境名
#仮想環境の無効化
conda deactivate
#作成した仮想環境の一覧
conda env list
#作成した仮想環境の削除
conda remove -n djangoenv --all #djangoenvは仮想環境名

そして、Djangoの実行できる環境を有効化したら、以下のコマンドでアプリケーションの雛形を作成する。

django-admin startproject FirstProject#FirstProjectはプロジェクトの名前
cd FirstProject #cmpの実行レベルを作成したプロジェクトに合わせる。不要な場合もある。
manage.py runserver

最後のコードを実行すると、プロジェクトのURLが発行される。

そして、またcmpで以下のコードを入力すると、appファイルを作成できる。

python manage.py startapp first-app#アプリケーションの名前

こちらを入力すると、プロジェクト内部にappファイルを作成することが出来る。

ここから、文字を記入したページにURLディスパッチを実行する方法をまとめていく。

作成したアプリケーションをプロジェクト内のsetting.pyに追記する。

INSTALLED_APPS = [
   "Django.hello.hello.something", #コンマを付ける。
   "first-app" #作成したアプリケーションの名前を入力する。

その後、appファイル内のViews.pyに以下のコードを追加する。
このフォルダに書かれた関数の呼び出しがurls.pyからかかると、returnで書かれた内容がHttpResponseとして返される。
この場合、indexが呼び出されたら、ページに"Something"とでかでかと表示される。

from django.http import HttpResponse

def index(request):
    return HttpResponse("<h1>Something</h1>") #リクエストが来たらこの値をレスポンスとして返す

そして、appファイル内にurls.pyを作成し、以下の内容を記述する。
これを用いて、URLが指定されたとき、それに対応するページを実行する。
この場合、URLの末尾に何もついていないとき、viewsで作成したindexの関数が呼び出される。

from django.urls import path
from . import views

app_name = 'first-app' #appの名前空間を表す。(画面の遷移先を指定する場合に用いる)
urlpatterns = [
    path('', views.index, name='index') #/でアクセスした場合にviewsファイル内のindex関数を返す

その後、プロジェクトディレクトリ内のurls.pyにappフォルダ内のurls.pyのパスを通す。
すでにある記述に繋げる形で2行目のimportのあとのincludeとurlpatternsのpathの2行目の記述を追加していく。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('firstapp/', include('first-app.urls')) #最初の引数はURLにつくものだから何でも良い
]

こうすると、最初にmanage.py runserverで発行したURLに/firstapp/をつけると以下のような表示ができる。

image.png

以上でDjangoでページを表示させ、URLディスパッチを作成するところまでのまとめでした。

補足 マイグレーションのやり方も記しておく。

python manage.py migrate

これを入力するとマイグレーションが実行される。

詳細はまだ理解していないので説明できないが、DBの種類に合わせてsetting.pyのDATABASEを書きかえる必要がある。

DATABASES = {
 'default':{
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': BASE_DIR/ 'db.sqlite3'
  }
}
#ENGINE: 利用するデータベース
#NAME: DATABASEの名前

デフォルトではSQLite3で有効化されている。SQLite以外では接続先のホスト名、パスワード、ユーザー名なども合わせて記載が必要。

0
1
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
0
1