カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

1-1

Djangoプロジェクトの作成

実際にDjangoでWebアプリケーションを作成します。まだDjangoの環境構築が終わっていない方は0章に環境構築方法を記載しているので、そちらを参考に環境構築を行ってください。

この章で学べること

Copied!
- Djangoのプロジェクトとアプリの違い - Djangoプロジェクトの作成方法 - ローカルサーバーの起動方法

Djangoプロジェクトとは

プロジェクトとは、データベースの設定などのDjango全体の設定群をまとめたひとつの単位です。
また、プロジェクトとは別にアプリケーションという単位が存在します。アプリケーションは実際のWebアプリケーションのことです。ひとつのDjangoプロジェクトには複数のアプリケーションを作成することができます。

プロジェクトとアプリケーションの違いについては、公式ドキュメントにも記述がありますので補足として引用します。

プロジェクトとアプリケーションの違いとは何でしょうか?アプリケーションとは、実際に何らかの処理を行う Web アプリケーションを指します。例えばブログシステムや公開レコードのデータベース、単純な投票アプリといった具合です。プロジェクトとは、あるウェブサイト向けに設定とアプリケーションを集めたものです。一つのプロジェクトには複数のアプリケーションを入れられ ます。また、一つのアプリケーションは複数のプロジェクトで使えます。

アプリケーションをどのように分割するのか、明確な基準はないため、正直熟練者であっても悩ましいところです。
ただし、今回のコースでは1プロジェクト1アプリで作成していきますので、心配しないでくださいね。

新規Djangoプロジェクトの作成

それでは、実際にプロジェクトを作成してみましょう!

最初に、あらかじめDjangoのプロジェクトを格納するディレクトリ kanban を作って、その中に移動しておきます。

Copied!
$ mkdir kanban $ cd kanban

下記コマンドでプロジェクトを作成できます。

Copied!
$ pipenv run django-admin startproject config .

pipenv run は「pipenvで作成した仮想環境上で」という意味です。 run 以降をpipenvの仮想環境上で実行します。

プロジェクトを作成するコマンドは django-admin startproject <プロジェクト名> <作成するディレクトリ> となっています。
<作成するディレクトリ> は省略できますが、 .(ドット) を指定することでカレントディレクトリ直下にプロジェクトを展開してくれるようになります。

また、ここでは <プロジェクト名>config としています。本来であれば kanban などにすべきですが、実際のプロジェクト名には設定ファイルが集約されるので、 config とすることで、設定ファイルが config 内に作成されます。
少々わかりにくいですが、 .(ドット) と合わせて、これもプロジェクトをわかりやすく作成するためのコツです。

私は実務でもこのように作成していますので、ぜひ試してみてくださいね。

作成されたファイルの解説

プロジェクトを作成することで、以下のようなディレクトリ構成になります。

Copied!
kanban ├── Pipfile ├── Pipfile.lock ├── config │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── manage.py

Pipfileについて

PipfilePipfile.lock はPipenvでDjangoをインストールした際に自動で生成されたものです。Pythonのバージョンやライブラリの情報がまとめられています。

configディレクトリについて

./kanban/config 以下には4つのファイルが存在します。

./kanban/config/__init__.py は、Pythonにディレクトリを認識させるためのファイルです。 __init__.py がディレクトリ内に存在しないと、そのディレクトリのファイルを参照できなくなります。特別なことがない限り、 __init__.py は空のファイルとなります。

./kanban/config/settings.py は、Djangoプロジェクト全体に関わる設定を記述するファイルです。データベースの設定などもこのファイルに記述します。

./kanban/config/urls.py は、ルーティング(URLの設定)を記述するファイルです。プロジェクトを作成した段階で、自動的にadminページ(管理画面機能)のルーティングが設定されています。

./kanban/config/wsgi.py は、WSGI(Web Server Gateway Interface)に関する設定を記述するファイルです。ざっくり言うと、サーバーに関する設定を記述しますが、開発サーバーであれば初期設定で動作するので、このコースでは特段編集しません。
ちなみにWSGIはウィズギーと読みます。

manage.pyについて

./kanban/manage.py は開発サーバーを起動したり、データベースのマイグレート(作成)をしたりする際の命令を行うためのファイルです。

Copied!
$ python manage.py <コマンド名>

で、あらかじめ定義されたコマンドを実行できます。

開発用サーバーの起動

プロジェクトを作成すると、開発用のサーバーが起動できるようになります。早速起動してみましょう。

下記コマンドで開発サーバーを起動できます。

Copied!
$ pipenv run python manage.py runserver
Copied!
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them.

といったエラーが出るかと思いますが、一旦はスルーして大丈夫です。
下記のように表示されて、 http://127.0.0.1:8000/ で開発サーバーにアクセスできます。ブラウザで開いてみましょう。

Copied!
Django version 2.2, using settings 'config.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.

ブラウザで http://127.0.0.1:8000/ にアクセスすると、下記のようなページに飛ぶかと思います。

image

正しく表示されていれば、無事にプロジェクトが作成できています!おめでとうございます🎉

現在のパート (4)
全パート (71)
みんなで助け合おう!
現在のパートのディスカッション 全4件
1-1
田中 遥介 2020-07-27
質問です

初めまして、田中です。

pipenv run django-admin startproject config .実行時、
ディレクトリ構造を確認したところ下記ファイルが作成されませんでした。
・Pipfile
・Pipfile.lock

サーバー自体は起動し想定通り動作しております。
こちらどのような原因が考えられますでしょうか。

また存在しなくても進めることができますでしょうか。

image

1-1
Taka 2020-07-07
質問です

はじめまして、谷口です。
「【Django】trello風todoタスク管理アプリを作成しよう」について、ご質問します。当方は、最近PyCharm pro 環境で、本django学習をはじめました。当方の環境は OS Mac OS Catalina、Anaconda Navigator 1.9.12 環境、python は3.6選択可、DjangoもVe指定ができます。今まで、Condaによる仮想環境でDjango開発サーバーにアクセスまで確認しております。
私の環境には、pipenvをインストールしておりませんので、プロジェクト作成の段階において行き詰まっています。
pipenv を使用せずに、現行のPyCharm proを使いDjango仮想環境にて勉強したいのですが、下記と同等な開発フォルダーをPycharmで構築する方法について、ご教授していただけないでしょうか?
 kanban
├── Pipfile
├── Pipfile.lock
├── config
│ ├── init.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
以上、よろしくお願い致します。

1-1
takashi009 2020-07-05
質問です

Error: the command django-admin could not be found within PATH or Pipfile's [scripts].

プロジェクト作成のコマンド入力をした時にこのようなエラーが出てしまいます。
カリキュラム通りにkanbanフォルダの中でプロジェクト作成するとエラーになりますが、kanbanフォルダの上の階層でするとうまく作成できます。kanbanフォルダの中には「pipfile」ができています。
↓全文はこちらです。
$ pipenv run django-admin startproject config .
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead. You can set PIPENV_VERBOSITY=-1 to suppress this warning.
Error: the command django-admin could not be found within PATH or Pipfile's [scripts].

ご教示おねがいします。

1-1
Kazu 2019-06-02
質問です

$ pipenv run python manage.py runserverの後に下記のエラーが出てしまいます。

ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

何卒ご教授願いいたします。

image