Django入門: 簡単な一行掲示板アプリを作る その1【Windows10】
目次
Djangoで一行掲示板
Django(ジャンゴ)はPythonのWebフレームワークです。
今回からこのDjangoを使って簡単な掲示板アプリを作ってみたいと思います。
Django3.1.1
で0から開発し、最終的にアプリが開発サーバーを通じてブラウザ上で動作する所までやります。
この記事を読めばDjangoの基本的な使い方がわかります。
以下が開発の前提条件です。
OSはWindows10
環境内でPython, Pipが使える
Pythonの基本的な文法がわかる
この条件に合えばこの入門記事を読むことは可能です。
それではさっそくはじめましょう。
仮想環境を作る
今回はファイルシステム上の適当なディレクトリにlinebbs
というディレクトリを作り、ここで作業を行うことにします。
コマンドプロンプトを起動し、適当な場所にlinebbs
ディレクトリーを作ってください。パスに日本語が含まれていない所がいいです。
ちなみにこのシリーズでは仮想環境を使うので、PowerShellではなくコマンドプロンプトを使うようにしてください(PowerShellだと仮想環境が動きません)。
> mkdir linebbs > cd linebbs
Pythonインタプリタを実行し、仮想環境を作ります。
Pythonのショートオプションm
にvenv
を指定すると仮想環境用ツールが使えます。
その引数に同様にvenv
と指定して、仮想環境venv
を作ります。
> python -m venv venv > dir venv
仮想環境をアクティベートします。
アクティベートはコマンドプロンプトで行ってください。Powershellだとエラーになります。
> venv\Scripts\activate (venv) >
Djangoをインストール
仮想環境をアクティベートしたら、仮想環境内のPipを使ってDjangoをインストールします。
> pip install Django==3.1.1 > pip freeze asgiref==3.2.10 Django==3.1.1 pytz==2020.1 sqlparse==0.3.1
ちなみにDjangoのアンインストールは↓のコマンドで実行できます。
依存関係のあるファイルを削除するか聞かれるので、「y
」と入力するとアンインストールが開始されます。
> pip uninstall Django
Djangoをインストールしたら仮想環境内でdjango-admin
コマンドが使えるようになります。
> django-admin Type 'django-admin help <subcommand>' for help on a specific subcommand. Available subcommands: [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate runserver sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
django-admin
には色々なサブコマンドがありますが、これらはすべては使いません。使うのは一部です。
プロジェクトを作成する
Djangoには「プロジェクト」という概念があります。アプリを開発するわけですが、実際のアプリはこの「プロジェクト」内に作成していきます。
アプリは複数作成可能なので「1プロジェクト複数アプリ」がDjangoでは基本となっています。
プロジェクトを作成するにはdjango-admin
のサブコマンドstartproject
を実行します。
この時、startproject
の引数にプロジェクト名を指定します。
プロジェクト名とは、今回作る掲示板アプリの開発コードのことです。
開発コードとは半角英数字で記述された、開発時に使用するプロジェクトの名前のことです。
今回はプロジェクト名は「linebbs
」と指定します。
django-admin startproject linebbs
を仮想環境がアクティベートされたコマンドプロンプトから実行すると、作業ディレクトリ内にlinebbs
というディレクトリが作成されます。
これはDjangoが自動で作成したプロジェクトのひな型です。実際の開発ではこのひな型に手を加えてプロジェクトを大きくしていきます。
> django-admin startproject linebbs > dir linebbs venv
プロジェクトを作成したらプロジェクト内に移動します。
> cd linebbs
作業ディレクトリがlinebbs
で、プロジェクトもlinebbs
になっているので紛らわしいですね。
(^ _ ^) | ほんまやで |
(・ v ・) | 自分で言ってたら世話ないわ |
プロジェクト内を一望する
プロジェクトのディレクトリに移動したら中身を観察してください。
↓のような構造になっていると思います。
> dir linebbs manage.py
linebbs
ディレクトリはプロジェクト用のディレクトリです。
アプリはこのディレクトリを起点に動作します。
manage.py
というのはプロジェクトに変更を加えたり、状態を確認したりするための便利ツール的なスクリプトです。
開発ではこのmanage.py
をとてもよく使います。これはPythonのスクリプトなので実際に実行してみてください。
↓のような出力になると思います。
> python manage.py Type 'manage.py help <subcommand>' for help on a specific subcommand. Available subcommands: [auth] changepassword createsuperuser [contenttypes] remove_stale_contenttypes [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver [sessions] clearsessions [staticfiles] collectstatic findstatic runserver
manage.py
にはさまざまなサブコマンドがあります。これらはプロジェクトの開発や運用を助けるためのものです。
たとえば管理メニューのスーパーユーザーを作成するcreatesuperuser
コマンドや、モデルからマイグレーションファイルを作成するmakemigrations
コマンド、他にもいろいろあります。
実際はここにリストされているコマンドをぜんぶ使うというようなことはありません。使うのはごく一部です。
おわりに
今回はここまでです。
次回から実際にプロジェクトにアプリを作成していきたいと思います。