paizaクラウドで、PythonのDjangoでWEBサイトを作る

  1. https://paiza.cloud/containersにアクセスして、サインアップする。メール登録して、メールからログインすればパイザクラウドのアカウントが作成できる。
  2. ターミナルを開く
    1. django-admin startproject django_website
      と入力して、django_website(任意)という新規プロジェクトを作る
  3. pwdで今のパスを表示できる。
  4. cd django_websited
    cdはchange directory(ディレクトリの変更)という意味。さっき作ったプロジェクトに移動する。
  5. pwd
    今のパスを確認する。以下でOK。
    「/home/ubuntu/django_website」
  6. python manage.py runserver
    開発用サーバーを立ち上げる。

    django_websiteフォルダが2つある。下の階層のdjango_websiteも、上の階層のプロジェクト名フォルダと同じ名前だが、これは特殊なフォルダ。
    setting.pyは、プロジェクト管理用のデフォルトでコマンドが入っているファイル。これから、コマンドを使っていく。

    左サイドバーの地球儀8000マークを押すと、黄色い画面になる。この画面が出れば、サーバーはもう立ち上がっている状態になる。
    この黄色い画面は、djangoのエラー発生時に出るエラー画面。エラー内容は、「DisallowedHost at /」このURLにアクセスするのはNGですよと言われている。
  7. 「django_website/settings.py」を開くと、28行目に、ALLOWED_HOSTS = []があるので、ALLOWED_HOSTS = [“*"]に変更。
    セキュリティは無視して、どんなURLでもアクセスできる設定になる。これで、「DisallowedHost at/」のエラーが消える。
  8. Ctrl+C
    開発サーバーを停止させる。
    サーバーを停止させずに、ターミナルをもう一つ起動させてもいい。
  9. python manage.py startapp website
    「website」というアプリを作る。2個目のアプリを作りたければ、「python manage.py startapp website2」みたいにすればOK。アプリが不要なら、作ったアプリのフォルダを丸ごと削除すればOK
    djangoでwebページを作成するには、最低1つ「アプリ」というものを作る必要がある。基本、複雑プロジェクトでなければ1プロジェクト1つだけのアプリが一般的。
  10. INSTALLED_APPS = [
    'django.contrib.admin’,
    'django.contrib.auth’,
    'django.contrib.contenttypes’,
    'django.contrib.sessions’,
    'django.contrib.messages’,
    'django.contrib.staticfiles’,
    'website’,
    ]
    アプリの名前(website)を追加する。シングルクォーテーションでも、ダブルクォーテーションでもどちらもOK。パイソンではどっちを使っても問題ない。プロジェクトと、アプリがあるが、プロジェクトは全体設定の時しか設定しない。基本的にアプリの方しか変更しない。
  11. アプリ(website)>templatesディレクトリを新規作成。
  12. templates>index.htmlを新規作成。index.htmlにhtmlを書く。<h1>Hello world</h1>
  13. website>view.pyに全行削除した後、「from django.views.generic import TemplateView」を記載。
    Djangoの方でデフォルトで用意しているビュー。TemplateViewは、htmlをユーザーに返す為の「ビュー」を追加している。
  14. website>view.pyに「class IndexView(TemplateView):」を追記。
    IndexVewというクラスを新規作成する。その際、TemplateViewを継承する。
  15. template_name="index.html"も追記。
    これは、index.htmlが、ユーザーが見る為のビューを作成している。
  16. website>urls.pyを新規作成
  17. from django.urls import path
    from .views import IndexView
    を追加する。「.views」の「.」は、今のフォルダの階層のviews.pyファイルの、IndexViewクラスをインポートしている。
  18. urlpatterns = [
    path(",IndexView.as_view(),)
    ]
    を追記する。これは、"は、トップページにアクセスした時という意味。トップページにアクセスしたら、IndexViewを表示する。IndexViewは、views.pyで「index.html」を表示するように先ほど設定をしたので、index.htmlが表示される。
  19. django_website>urls.pyに以下を記載。
    from django.contrib import admin
    from django.urls import path,include

    urlpatterns = [
    path('admin/’, admin.site.urls),
    path(",include('website.urls’))
    ]
    これは、トップページにアクセスされたら、

    1. websiteディレクトリのurls.pyを見に行けと指示。
    2. 今度、website>url.pyでは、トップページにアクセスされたら、views.pyのIndexViewクラスで「index.html」を見に行けと指示。
    3. website>templates>index.htmlを表示。

urls.pyは、該当のURLにアクセスがきたら、どのページを表示させるかを振り分けている。
teplatesフォルダには、HTMLファイルを置く。
views.pyには、templatesフォルダからHTMLを読み込んでユーザーに表示させる。

その他,未分類

Posted by ぼっち