「PythonでWebアプリケーションが作りたい」と思い、Djangoを勉強することに。公式チュートリアルが自分には難しかったので、いくつかの記事でオススメされているdjango girls tutorialに取り組んでみました。
説明が丁寧で、1つ1つの課題が細かく設定されているなど、確かに初心者には最適だと思ったのですが、チュートリアルのDjangoのバージョンが1.11で、個人的に突っかかったポイントがあったのでメモに残しておきます。
Pathを使ったURLの設定
特に混乱したのがwebサイト全体のURLを書いたurls.pyのここ。
これをそのまま打ち込んで、runserverするとエラーが出て動かない。
これは、Django2.0以降は、url()ではなくて、path()でURLを設定することになったからみたい。
いろいろ検索して試したところ、こうすると動く。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
どうして引数にinclude()を使っているのだろうとか、仕組みの理解は怪しいですが、とりあえず動いたので嬉しい。
include()で、作っているアプリ(この場合はblog)のurls.pyを引っ張ってきて、path()に渡しているということだろうか。
admin.site.urlsの方をincludeしないのは、adminをimportしているからみたい。
このチュートリアル、日本語も英語もコメントが可愛くて面白かったです。
参考記事
Django Girls Tutorial[https://legacy.gitbook.com/book/djangogirlsjapan/workshop_tutorialjp/details]
Django 2.0の変更点について[https://qiita.com/massa142/items/15c130169d3bfc4a9996]
Django2.0以降の変更点で気づいたポイント:引数つきのpath設定[https://qiita.com/k_mawa82/items/b8cbc960415e975da925#%E6%9C%AC%E7%B7%A8]
Django 2.0 url() to path() cheatsheet[https://consideratecode.com/2018/05/02/django-2-0-url-to-path-cheatsheet/]