表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
なれる運営 ~30日で作る小説投稿サイト~  作者: とある個人開発者
1章 Webアプリの基本を覚える7日間
8/40

7日目 Djangoを学ぼう!

「今日はPythonのフレームワークのDjangoについて説明していくよ。実際の使い方は後でチュートリアルで学んでもらうからここでは簡単に説明だけ」


「はーい」


 * * *


「まずPythonのフレームワークはいくつか種類がある。代表的なのを3つくらい紹介しておく。


■Django

Pythonのフレームワークの中でよく使われている。Web開発に必要な機能がだいたい詰まった万能フレームワーク。小規模から大規模なシステムに至るまで対応可能。


■Flask

他のWebフレームワークに比べて軽量なWebフレームワーク。学習コストは低めであり、導入しやすい。小規模、多くの機能を必要としないWebアプリケーション開発に向いてる。



■Bottle

こちらも軽量・シンプル・高速であることに特化している。単発的なアプリケーション、軽さを重視したいアプリケーション開発向き。



 フレームワークには種類があって、フルスタックと呼ばれるもの、マイクロ、非同期フレームワークなどいくつかある。フルスタックフレームワークはWeb開発に必要な機能がすべてそろっているフレームワークのことで汎用性が高いのが特徴。逆にマイクロフレームワークは必要最低限の機能が搭載されているフレームワークで小規模で、簡単に実装できる。


 作ろうとしている小説投稿サイトは多機能、大規模になる可能性もあるので汎用性が高いフルスタックフレームワークを使うのが無難。


 ということで、よく使われていて、フルスタックのDjangoを今回は使っていくことにする」


「へー」


 * * *


挿絵(By みてみん)

https://www.djangoproject.com/community/logos/


「Djangoは2005年にリリースされた。結構古くからある。素早い開発と再利用性をモットーに作られてる。


 Djangoを使って作られた有名どころは、InstagramとかMozillaかな。結構大きいところでも使われているから、規模が大きくなってもフレームワークとしては問題ない。あとは管理サイトが充実しているので管理者権限で何かするときに特別なものを作らなくてもいいのが楽」


「Instagramにも使われてるんだ。すごい」



「有名どころでも使ってるから、大規模に拡大しても対応できる。使っている人も多いので、資料も充実しているよ。わからないことがあったら検索すれば大体見つかる。


 ここからDjangoを使って説明するよ。開発用のエディタだけど、Pycharmか

Visual Studio Codeあたりがお勧めかな。



 ではここからDjangoの流れについて簡単に説明するよ。こんなものかなって思ってくれればいい。実際にはチュートリアルで実践するから流れだけ理解しておいて」


「はいよー」



■Djangoの処理の流れ。


挿絵(By みてみん)


 大体こんな感じ。


 Djangoの中にはアプリケーション(特定の機能で分割されている)が複数あって、URLでどのアプリを使うのか判別する。


 アプリケーションはすべてを統合することもできるけど、なるべく独立に作って、各アプリを消しても影響がないように作る。例えば /user/とかいうURLならUser機能のアプリケーション、/read/ならRead用のアプリケーションなどなるべく独立に作る。


 URLでそのアプリにリクエスト、Viewでどんなデータ(modelからデータベースに行ってデータを貰う)を使って、どのページ(テンプレートのページを用意しておいて、どれを使えばいいかviewで判断)を使うか処理。貰ったデータとページを組み合わせて、その結果をユーザーに返す。



■Djangoプロジェクトの開始


Djangoは1つのWebアプリをプロジェクトという単位で管理する。

その中にはプロジェクトの設定ファイルとアプリケーション群で構成される。


挿絵(By みてみん)



■とりあえず作ってみる。



 事前にコマンドラインを立ち上げておく。まずは適当なディレクトリにプロジェクトフォルダを作成。



$ mkdir djangogirls

$ cd djangogirls



 そのあとmyvenvという仮想環境(virtual environment)を作成



$ python -m venv myvenv



 仮想環境の実行。


myvenv\Scripts\activate


 Djangoのインストール


pip install Django~=2.2.4



 無事Djangoがインストールされたので、プロジェクトの作成。



django-admin startproject mysite .


 mysiteというプロジェクトを立ち上げました。この時点でのフォルダ構造はこんな感じ。


挿絵(By みてみん)


manage.pyは開発関係のためのコマンドファイル。

settings.pyはプロジェクトを管理するためのファイル。


挿絵(By みてみん)


 まずタイムゾーンとランゲージの変更。あと静的ファイルのパス追加。


TIME_ZONE = 'Asia/Tokyo'

LANGUAGE_CODE = 'ja'

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')


データベース(sqlite3)の作成

python manage.py migrate



 と、ここまで来たら開発用ウェブサーバーの起動。(動作確認用)



python manage.py runserver



 起動したらhttp://127.0.0.1:8000/にアクセス


挿絵(By みてみん)


 ここまでがプログラミング言語でいう、Hello World。ここからDjangoの世界に入って開発を進めていくわけですね。ということでDjangoプロジェクトを立ち上げることができましたと。



 Djangoではプロジェクト(Webアプリ)を作成し、機能ごとにアプリケーションを作成していくことになります。


 DjangoではModel (データベース)、View(呼び出し)、Template(HTMLテンプレート)、URLs(URLパターン)、Forms(Modelに基づく入力フォーム)などでどのように動作するかが決められており、それぞれを定義していくことによって動きます。


 基本的にURLを決める(urls.py)→どのデータとテンプレートを呼び出すか(view.py)→データベースからの呼び出し(models.py)→テンプレートからの呼び出し(templates)の手順で作っていくことになります。必要な場合はFormを作ったりします」


「??」


「あんまり細かいこと言いだすとキリがないので概要としてはこれくらいで、どんな風に作るのかはチュートリアルが用意されているのでそこで学ぼう。ここまでが、使う言語についての基礎について。


 次から開発準備して作り始めるからここまでで学んだHTML/CSS/JavaScript/Python/Django。復習しておいてね。次から開発準備をしていくよ」


「まだ、入り口なんだね……」


ここまでがスタート地点。必要なプログラミング知識を突貫で覚えてもらいました。


HTML/CSSは必須。そのあとJavaScriptを覚えるのがいいですがスキップ可能。フレームワークを選んだら開発準備が完了します。とりあえず1週間以内にこの辺りまで進めましょう。時間をかけすぎると挫折します。


全部を覚える必要はないけど、こういう知識が必要なんだな程度は予習が必要です。


ここから、実際に開発していきます。


細かいところはアウトプットしながらじゃないとなかなか身につかないので、ある程度ざっくりと学んだら実践するのがいいと思います。

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ