#Djangoインストール後に何をやったらいいかわからない方へ
今回はdjangoを使って画面に好きな文字列を表示してみるチュートリアルです。
どんな仕組みでバックエンドの処理がされているのか、わかると思います。
ここでの作業は、manage.pyが入っているプロジェクトフォルダ上で作業を行います。
目標は自分でアプリ作成してから、サンプル程度にエクスプローラー画面に好きな文字を表示させることです。
少しややこしくなってきますので、無理なく進めてゆきましょう!
##コマンドでアプリを作成する
まだプロジェクトが作成されていない方はこちらでチュートリアルを確認できます。
それではコチラのコマンドを入力してください。
$ python manage.py startapp test_app
出来上がったアプリを確認
mysite/
|---manage.py
|---mysite/
| |---__init__.py
| |---settings.py
| |---urls.py
| |---asgi.py
| |---wsgi.py
|---test_app/(ここが追加されました)
|---__init__.py
|---admin.py
|---apps.py
|---migrations/
| |---__init__.py
|---models.py
|---tests.py
|---views.py
mysite/mysiteと同じ階層にtest_appが作成されたでしょうか?
それでは次のステップに進みましょう。
##ファイル編集用のテキストエディタの準備
テキストエディタをお持ちの方は次に飛んで構いません。
私はPycharmを利用しています。
初心者やプログラミング言語の文法に慣れていない方は、Atomというテキストエディタをお勧めします。
操作が分かりやすく、最初は私はAtomを使っていました。
ごちゃごちゃエラーの指摘をされたり、波線が多く出てくると自分のコードに自信が持てなくなる可能性がありますよね。
そのためにもシンプルなテキストエディタからまずは始めるのがおすすめです。
インストール方法URL
##settings.pyにアプリConfigを追加
ALLOWED_HOSTS
とINSTALLED_APPS
に'*'
と'test_app.apps.TestAppConfig'
,を追加しています。
ALLOWED_HOSTS = ['*']
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'test_app.apps.TestAppConfig',
]
Django 1.5以降ではALLOWED_HOSTS
の設定が必要となっています。
これは、公開するドメイン名を指定しています。
*
とは、なんでもよいよ、といったワイルドカードの意思表示です。
さらに、INSTALLED_APPS
に'test_app.apps.TestAppConfig',
を加えています。
|---test_app/
| |---__init__.py
| |---admin.py
| |---apps.py
| |---migrations/
| | |---__init__.py
| |---models.py
| |---tests.py
| |---views.py
ここのapps.pyの中身を見てみると、
class TestAppConfig(AppConfig):
name = 'test_app'
とあり、TestAppConfig
をINSTALLED_APPS
に追加していることを意味しています。
アプリ名から自動的に大文字変換などもされてクラスが出来上がっているのですね、これになぜ?と感じても,まずはこんなものなのだと理解しておく必要があります。
割りきりが大切!後になって分かるときを待ちましょう。混乱する気持ちは痛いほどわかります💦
ここまで出来たら、今度はルーティングを作成します。
##urls.pyでルーティングの設定を行う
指定したURLを打つと、エクスプローラ画面に"Hello"
や"こんにちは!"
と表示させることが目標です。
具体的には、http://localhost:8000/index/
と打つと、Hello
と表示する、という流れです。ちゃんとURLにindex/
と入力されていますね。
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('test_app.urls')),
]
include
関数を用いて、アプリのurls.py
を含めるように設定します。
importも忘れずにお願いします。
このように大元のmysite
ではinclude
関数を用いつつ、アプリ側で新たにurls.py
を作成しルーティングを設定してゆきます。
これは慣れです。Djangoの特有な設定かもしれません。
現在、大元のurls.py
→test_appのurls.py作成→test_appのルーティング設定→views関数作成
といった流れになってます。
test_app
の中身にurls.py
を新たに作成しましょう。
そして、中のコードはこのようになります。
from django.urls import path
from . import views
urlpatterns = [
path('index/',views.index,name='index'),
]
path
関数を使用するとかんたんなURL記法でルーティング設定ができます。
views.py
をimport
するために.を用いていますが、Djangoが今のファイル名までのルーティングパスを指定してくれているため、.はviews.py
やurls.py
が含まれているディレクトリ名を表してくれています。
このおかげでviews.index
とviewsファイルの中のview関数を呼び出せるのです。
name='index'
とは、このルーティングの名前を設定しています。
表紙画面であればindex、詳細画面であればdetailとパスに近しいわかりやすい名前を指定するとよいです。
ここではindexとしておき、必要になったら復習を行ってください。
##views.pyにてHttpResponseを用いて画面表示(今回最後の作業)
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('Hello')
urls.pyで設定したviews.indexに紐づき、index
という名前の関数を用意しました。
引数はrequest
となっており、html側から送られてくるgetデータを扱いたい場合などに用いられます。
djangoファイルとhtmlとの橋渡し的な存在のイメージで構いません。
HttpResponse
の引数は自由に変えられます。文字列型であるところに注意。import
も忘れずにお願いします。
エラーなくサーバーを実行してみると、
python manage.py runserver
##最後に
画面に好きな文字は表示できましたでしょうか?
今回は基本であるものの最初にマスターしておきたい作業なので、行き詰ったらこの作業を練習してみると楽しくなると思います。
いろいろとファイルを行ったり来たりして面倒ですが、各ファイルurls.py
,settings.py
,views.py
の役割を抑えると、案外簡単に使いこなせると思います。
3か月以上見積もって、ゆっくりと使いこなせるよう頑張ってください。私ももがきやっとできるようになったのですから。
エラーなどで全く思い通りにいかない!という場合はエラー文をググってみたり、わかりやすいサイトで見本通りやってみることが大事です。
試行錯誤よりも、できることの中で練習をしていくほうが私なりの勉強法としてお勧めします。