Djangoで秒速template。(初心者向け)
・アブストラクト
以下のコードのコピペ±微編集でDjangoWebアプリ即席スタートを実現します。DjangoTutirial#1~3からの引用が中心です。(但し、プロジェクト名=pro,アプリ名 =ap と仮定。要書換。)
// pro/urls.pyのurlpatternに追加 //
path('', include('ap.urls')),
// ap/urls.py //
from django.urls import path, include
from . import views
app_name = 'ap'(無くてもおk)
urlpatterns = [
path('', views.A.as_view(), name = 'ap')
]
// views.py に追加 //
from django.views import generic
class A(generic.TemplateView):
template_name = 'ap/index.html'
// setting.pyに追加 //
'ap.apps.ApConfig',
(@'INSTALLED_APPS')
[os.path.join(BASE_DIR, 'templates'),
(@'DIRS' in 'TEMPLATES')
STATICFILES_DIRS = (
[
os.path.join(BASE_DIR, "static"),
]
)
(nearby 'STATIC')
//apと同じ階層に/template/ap, /static/フォルダを作る。//
// runserver前に打つコマンド
'python manage.py makemigrations', then
'python manage.py migrate'//
・本論
Djangoの様々な文献を読んだが「意味とかいいからシステマティックにアプリをスタートしたい」という需要に答えるものが見当たらないので書きました。手順や場所は上記の通りなのでここでは意味をざっくり補足します。Djangoは’python manage.py runserver’を受け取るとまずpro/urls.pyのURL_PATTERNを参照し、アプリのルーティング(アプリ内URLのページのやり取り。)を理解します。そこにpath('', include('ap,urls'))を忍ばせる事は「’’を受け取ったらapのurls.pyを読んでね。」と命令したことに等しいです。(’’は名無しのURLで、ローカルなら127.0.0.1:8000)以降管理者は、アプリ内のページ新規作成時にap/urls.pyにそのURLを書き込めばよいことになります。
urls.pyの次にDjangoが読むのはview.pyで、ここにhtmlを表示させるclassを定義しておくとhtmlを表示させることができます。viewについては長くなるのでここでは補足しません。最後にsetting.pyにtemplate,staticの2フォルダの位置を教えるDIRSプロパティを編集し、ap/apps.pyのconfigをINSTALLED_APPに書き込んで準備完了です。
makemigration,migrateを実行するとtemplate/app/index.htmlを表示するとお思います。
・結論
面倒な作業ほどテンプレ化が捗ります。
この記事が気に入ったらサポートをしてみませんか?